انتقل إلى محتوى الدرس

Left Joins and Advanced Clauses الربط الأيسر وشروط الربط المركبة

ربط الجداول المترابطة عبر join و leftJoin وحساب الإحصائيات التجميعية وتجميع الصفوف بـ groupBy و having وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يستبعد الربط الداخلي السجلات الرئيسية التي لا تملك سجلات فرعية، مما قد يخفي العملاء الذين لم يطلبوا بعد أو الأقسام الفارغة. يحافظ استخدام leftJoin على كافة صفوف الجدول الأيسر مع وضع قيمة NULL للحقول الغائبة، وتسمح الدوال المغلقة ببناء شروط ربط مركبة.

  • الربط الأيسر (leftJoin): الاحتفاظ بجميع سجلات الجدول الأساسي حتى لو لم يقابلها أي سجل في الجدول الفرعي.
  • شروط الربط المتقدمة (JoinClause): تمرير دالة مغلقة لدمج عدة شروط on و where داخل جملة الربط نفسها.
  • تصفية آمنة (Scoped Join Filter): وضع الشرط داخل دالة الربط يمنع تحول الربط الأيسر إلى ربط داخلي.
PHP
$users = DB::table('users')
    ->leftJoin('orders', function ($join) {
        $join->on('users.id', '=', 'orders.user_id')
             ->where('orders.status', '=', 'paid');
    })
    ->select('users.name', 'orders.total')
    ->get();