• 0

مالفرق بين INNER JOIN و FULL JOIN

متى يتم استخدامهما بالشكل الصحيح

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

مرحبا،

يعمد INNER JOIN على ربط العناصر المتساوية بين عمودي جدولين أما OUTER JOIN يعمل على وضع جميع عناصر أحد الجدولين ثم وضع مقابلها من الجدول الآخر في حال وجود قيم متساوية.

الجدول الذي سيتم وضع جميع قيمه يمكن أن يستدل عليه من موقعه ضمن عبارة SQL بالنسبة للكلمات المفتاحية التالية (الجدول الرئيسي في عملية الدمج)

  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN
  • FULL OUTER JOIN

المثال الذي سنطبق عليه التمارين هو التالي:

الفراغات تدل على عدم وجود قيمة مقابلة من العمود المختار من الجدول الآخر (الغير رئيسي) في عملية الدمج.

Set "A"    Set "B"

 AA         BB
--------   --------
 Item 1     Item 3
 Item 2     Item 4
 Item 3     Item 5
 Item 4     Item 6

LEFT JOIN:

SELECT * FROM A LEFT JOIN B ON AA = BB


 AA         BB
--------   --------
 Item 1
 Item 2
 Item 3     Item 3
 Item 4     Item 4

RIGHT JOIN:

SELECT * FROM A RIGHT JOIN B ON AA = BB

 AA         BB
--------   --------
 Item 3     Item 3
 Item 4     Item 4
            Item 5
            Item 6

FULL JOIN:


 AA         BB
--------   --------
 Item 1            <-----+
 Item 2                  |
 Item 3     Item 3       |
 Item 4     Item 4       |
            Item 5       +--- empty holes are NULL's
            Item 6       |
   ^                     |
   |                     |
   +---------------------+

INNER JOIN:

SELECT * FROM A INNER JOIN B ON AA = BB

 AA         BB
--------   --------
 Item 3     Item 3
 Item 4     Item 4

كما يوجد CROSS JOIN الذي يقوم بعمل جداء ديكارتي بين كل عنصر من أول جدول مع جميع العناصر من الجدول الثاني:

- تتم بدون عمل أي شرط عل البيانات -

SELECT * FROM A CROSS JOIN B

 AA         BB
--------   --------
 Item 1     Item 3      ^
 Item 1     Item 4      +--- first item from A, repeated for all items of B
 Item 1     Item 5      |
 Item 1     Item 6      v
 Item 2     Item 3      ^
 Item 2     Item 4      +--- second item from A, repeated for all items of B
 Item 2     Item 5      |
 Item 2     Item 6      v
 Item 3     Item 3      ... and so on
 Item 3     Item 4
 Item 3     Item 5
 Item 3     Item 6
 Item 4     Item 3
 Item 4     Item 4
 Item 4     Item 5
 Item 4     Item 6

NATURAL JOIN: تعمل مثل INNER JOIN ويتم مطابقة أسماء الحقول بدون الحاجة لكتابتها:

SELECT * FROM A NATURAL JOIN B

 +----------+------- matches on the names, and then the data
 |          |
 v          v
 XX         XX
--------   --------
 Item 3     Item 3
 Item 4     Item 4

رسم توضيحي لعملية تقاطع الجداول:

SQL_JOIN.png.e5207b14197a62d00aeceb724f564f29.png

بالتوفيق

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن