logo

الفرق بين الانضمام الأيسر والانضمام الأيمن

تحتوي MySQL بشكل أساسي على نوعين من الصلات تسمى LEFT JOIN وRIGHT JOIN. والفرق الرئيسي بين هذه الصلات هو إدراج الصفوف غير المتطابقة . تتضمن LEFT JOIN جميع السجلات من الجانب الأيسر والصفوف المتطابقة من الجدول الأيمن، بينما تقوم RIGHT JOIN بإرجاع جميع الصفوف من الجانب الأيمن والصفوف غير المتطابقة من الجدول الأيسر. في هذا القسم، سنتعرف على الاختلافات الشائعة بين الانضمام الأيسر والأيمن. قبل استكشاف المقارنة، دعونا أولاً نفهم جملة JOIN وLEFT JOIN وRIGHT JOIN في ماي إس كيو إل .

ما هو شرط الانضمام؟

أ ينضم يتم استخدامه للاستعلام عن البيانات من جداول متعددة وإرجاع النتيجة المجمعة من جدولين أو أكثر من خلال شرط. يشير الشرط الموجود في جملة الصلة إلى كيفية مطابقة الأعمدة بين الجداول المحددة.

ما هو شرط الانضمام الأيسر؟

تقوم عبارة Left Join بربط جدولين أو أكثر وإرجاع كافة الصفوف من الجدول الأيسر والسجلات المطابقة من الجدول الأيمن أو إرجاع قيمة فارغة إذا لم تجد أي سجل مطابق. ومن المعروف أيضا باسم ترك صلة خارجية . لذلك، الخارجي هي الكلمة الأساسية الاختيارية التي يجب استخدامها مع Left Join.

يمكننا أن نفهم ذلك من خلال التمثيل المرئي التالي:

الانضمام الأيسر مقابل الانضمام الأيمن

لقراءة المزيد من المعلومات حول الانضمام LEFT، انقر هنا .

ما هو شرط الانضمام الصحيح؟

تقوم جملة الصلة اليمنى بربط جدولين أو أكثر وإرجاع كافة الصفوف من الجدول الأيمن، وفقط تلك النتائج من الجدول الآخر التي استوفت شرط الصلة المحدد. إذا عثر على سجلات غير متطابقة من الجدول الموجود على الجانب الأيسر، فسيتم إرجاع قيمة Null. ومن المعروف أيضا باسم الانضمام الخارجي الصحيح . لذلك، الخارجي هو الشرط الاختياري الذي يجب استخدامه مع Right Join.

يمكننا أن نفهم ذلك مع ما يلي التمثيل البصري .

الانضمام الأيسر مقابل الانضمام الأيمن

لقراءة المزيد من المعلومات حول RIGHT JOIN، انقر هنا.

بناء جملة جملة LEFT JOIN

ما يلي هو بناء الجملة العام لـ LEFT JOIN:

 SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

ما يلي هو بناء الجملة العام لـ LEFT OUTER JOIN:

 SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

بناء جملة RIGHT JOIN

ما يلي هو بناء الجملة العام لـ RIGHT JOIN:

 SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

ما يلي هو بناء الجملة العام لـ RIGHT OUTER JOIN:

 SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

الانضمام الأيسر مقابل الانضمام الأيمن

يشرح جدول المقارنة التالي الاختلافات الرئيسية بينهما بطريقة سريعة:

الانضمام الأيسر الانضمام الصحيح
فهو يربط جدولين أو أكثر، ويعيد كافة السجلات من الجدول الأيسر، ويطابق الصفوف من الجدول الأيمن. يتم استخدامه لربط جدولين أو أكثر، وإرجاع كافة السجلات من الجدول الأيمن، ومطابقة الصفوف من الجدول الأيسر.
ستحتوي مجموعة النتائج على قيمة فارغة إذا لم يكن هناك صف مطابق في الجدول الجانبي الأيمن. ستحتوي مجموعة النتائج على قيمة فارغة إذا لم يكن هناك صف مطابق في الجدول الموجود على الجانب الأيسر.
يُعرف أيضًا باسم LEFT OUTER JOIN. ويسمى أيضًا باسم RIGHT OUTER JOIN.

مثال

دعونا نفهم الاختلافات بين كلا الرابطتين من خلال الأمثلة. لنفترض أن لدينا جدول اسمه ' عميل ' و ' طلبات ' والذي يحتوي على البيانات التالية:

الجدول: العميل

الانضمام الأيسر مقابل الانضمام الأيمن

الجدول: الطلبات

الانضمام الأيسر مقابل الانضمام الأيمن

مثال على الانضمام الأيسر

تقوم عبارة SQL التالية بإرجاع السجلات المطابقة من كلا الجدولين باستخدام استعلام LEFT JOIN:

 SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>

بعد تنفيذ الاستعلام بنجاح، سنحصل على النتيجة كما يلي:

الانضمام الأيسر مقابل الانضمام الأيمن