INNER JOIN مقابل LEFT JOIN
"ما الفرق بين INNER JOIN و LEFT JOIN؟" هو على الأرجح أكثر أسئلة SQL شيوعًا في المقابلات. في هذا الدرس تربط أخيرًا جدولَي المتجر: سترى كيف يشير customer_id في الطلب إلى عميل، وماذا يُرجع كل نوع من JOIN، ولماذا يختفي Omer في أحدهما ويظهر مع NULL في الآخر، وكيف تجد العملاء الذين لم يطلبوا أبدًا.
يُبقي INNER JOIN الأزواج التي وجدت تطابقًا فقط. أما LEFT JOIN فيُبقي كل صفوف الجدول الأيسر ويضع NULL حيث لا يوجد تطابق.
- مفتاح أجنبي
- عمود قيمته مفتاح أساسي في جدول آخر، مثل orders.customer_id الذي يشير إلى customers.id.
- INNER JOIN
- ربط يُرجع فقط أزواج الصفوف من الجدولين التي تحقق شرط ON.
- LEFT JOIN
- ربط يُرجع كل صفوف الجدول الأيسر، مع NULL في أعمدة الجدول الأيمن عندما لا يوجد تطابق.
- شرط ON
- الشرط الذي يحدد أي صفوف من الجدولين تنتمي بعضها إلى بعض.