اذهب إلى المحتوى
  • 0

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

Mahmoud Plus

السؤال

Recommended Posts

  • 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

بالتوفيق

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...