يتم استخدام Left Join في MySQL للاستعلام عن السجلات من جداول متعددة. تشبه هذه الجملة جملة Inner Join التي يمكن استخدامها مع عبارة SELECT مباشرة بعد الكلمة الأساسية FROM. عندما نستخدم عبارة Left Join، فإنها ستعيد جميع السجلات من الجدول الأول (الجانب الأيسر)، حتى لم يتم العثور على سجلات مطابقة من الجدول الثاني (الجانب الأيمن). إذا لم يتم العثور على أي سجل مطابق من الجدول الجانبي الأيمن، فسيتم إرجاعه فارغًا.
بمعنى آخر، تقوم عبارة Left Join بإرجاع كافة الصفوف من الجدول الأيسر والسجلات المطابقة من الجدول الأيمن أو إرجاع Null في حالة عدم العثور على سجل مطابق. يمكن أيضًا تسمية هذا الانضمام بـ ترك صلة خارجية بند. لذلك، الخارجي هي الكلمة الأساسية الاختيارية التي يجب استخدامها مع Left Join.
يمكننا أن نفهم ذلك من خلال التمثيل المرئي التالي حيث تقوم Left Joins بإرجاع جميع السجلات من الجدول الأيسر والسجلات المطابقة فقط من الجدول الجانبي الأيمن:
MySQL LEFT JOIN Syntax
يشرح بناء الجملة التالي جملة Left Join لربط جدولين أو أكثر:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
في بناء الجملة أعلاه، الجدول 1 هو الجدول الأيسر، و الجدول 2 هي الطاولة اليمنى. تقوم هذه الجملة بإرجاع كافة السجلات من الجدول 1 والسجلات المطابقة من الجدول 2 بناءً على المحدد شرط الانضمام .
تحويل c++ إلى سلسلة
مثال على MySQL LEFT JOIN
دعونا نأخذ بعض الأمثلة لفهم عمل شرط الانضمام الأيسر أو الانضمام الخارجي الأيسر:
مخطوطة لكل منهما
جملة LEFT JOIN لربط جدولين
هنا سنقوم بإنشاء جدولين عملاء' و ' طلبات' الذي يحتوي على البيانات التالية:
الجدول: العملاء
الجدول: الطلبات
لتحديد السجلات من كلا الجدولين، قم بتنفيذ الاستعلام التالي:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
بعد التنفيذ الناجح للاستعلام، فإنه سوف يعطي الإخراج التالي:
سلسلة جافا مقسمة بواسطة محدد
MySQL LEFT JOIN باستخدام جملة الاستخدام
العملاء والأوامر في الجدول لديهم نفس اسم العمود، وهو customer_id. في هذه الحالة، يمكن أيضًا استخدام MySQL Left Join مع جملة USING للوصول إلى السجلات. يُرجع البيان التالي معرف العميل واسم العميل والمهنة والسعر والتاريخ باستخدام جملة الانضمام الأيسر مع الكلمة الأساسية USING.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
البيان أعلاه سوف يعطي الإخراج التالي:
MySQL LEFT JOIN مع المجموعة حسب البند
يمكن أيضًا استخدام Left Join مع جملة GROUP BY. يُرجع البيان التالي معرف العميل واسم العميل والمؤهل والسعر والتاريخ باستخدام عبارة Left Join مع عبارة GROUP BY.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
البيان أعلاه سوف يعطي الإخراج التالي:
انضم إلى اليسار باستخدام جملة WHERE
يتم استخدام جملة WHERE لإرجاع منقي النتيجة من الجدول. يوضح المثال التالي ذلك من خلال عبارة Left Join:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
هذا البيان يعطي النتيجة التالية:
MySQL LEFT JOIN جداول متعددة
لقد قمنا بالفعل بإنشاء جدولين باسم ' عملاء' و ' طلبات' . دعونا ننشئ جدولًا آخر ونسميه باسم ' جهات الاتصال التي تحتوي على البيانات التالية:
قم بتنفيذ العبارة التالية للانضمام إلى جداول العملاء والأوامر وجهات الاتصال الثلاثة:
كيفية فرز مجموعة في جافا
SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income;
بعد التنفيذ الناجح للاستعلام أعلاه، فإنه سيعطي الإخراج التالي:
استخدام جملة LEFT JOIN للحصول على سجلات لا مثيل لها
تعتبر جملة LEFT JOIN مفيدة أيضًا في مثل هذه الحالة عندما نريد الحصول على سجلات في الجدول لا تحتوي على أي صفوف بيانات متطابقة من جدول آخر.
يمكننا فهم ذلك من خلال المثال التالي الذي يستخدم جملة LEFT JOIN للعثور على عميل ليس لديه رقم هاتف محمول:
شيء فرز سريع
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
البيان أعلاه يرجع الإخراج التالي:
الفرق بين عبارة WHERE وON في MySQL LEFT JOIN
في LEFT Join، يعطي الشرط WHERE وON نتيجة مختلفة. يمكننا أن نرى الاستعلامات التالية لفهم الاختلافات بينهما:
حيث الشرطية
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
سيعطي الإخراج التالي الذي يعود:
على البند
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
سوف يعطي الإخراج التالي: