"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تعمل الروابط الذاتية في MySQL لمقارنة الصفوف من نفس الجدول؟

كيف تعمل الروابط الذاتية في MySQL لمقارنة الصفوف من نفس الجدول؟

تم النشر بتاريخ 2024-11-20
تصفح:856

How do self-joins work in MySQL to compare rows from the same table?

كيف تعمل الانضمام الذاتي في MySQL؟

يتضمن الانضمام الذاتي في MySQL الانضمام إلى مثيلين من نفس الجدول، عادةً مع أسماء مستعارة مختلفة. يسمح لك بمقارنة صفوف من نفس الجدول بناءً على معايير محددة.

شرح الاستعلام

دعونا نقسم الاستعلام المحدد:

SELECT event2.id, event2.startdate, event2.price
FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
WHERE event1.id=$id

من البند

يحدد هذا الجداول التي سيتم الانضمام إليها:

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

يتم استخدام نفس الجدول، mm_eventlist_dates، مرتين ويسمى بالحدث 1 والحدث 2.

بند

هذا يربط بين الحالتين الجدول بناءً على شرط:

ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)

يبحث عن صفوف في الحدث2 حيث يتطابق تاريخ البدء في اليوم التالي لتاريخ انتهاء الصف المقابل في الحدث1.

WHERE Clause

يعمل هذا على تصفية النتائج بناءً على الشرط المحدد:

WHERE events1.id=$id
WHERE event1.id=$id
يحدد الصفوف من الحدث 1 حيث يتطابق المعرف مع المتغير المحدد، $id.

SELECT Clause

يؤدي هذا إلى تحديد الحقول المطلوبة من الصفوف المرتبطة :

SELECT events2.id,event2.startdate,event2.price
WHERE event1.id=$id
يقوم باسترداد المعرف وتاريخ البدء والسعر من مثيل events2، الذي يحتوي على معلومات حول الأحداث التالية للحدث المحدد (event1) بيوم واحد.

عرض توضيحي مرئي

تخيل أن لديك السجلات التالية في جدول mm_eventlist_dates:

event1.idevent1.enddateevent2.idevent2.startdate12023-03-0122023-03-023 03-03-202342023-03-04
مع الاستعلام المحدد:

    يقوم باسترداد الحدث1 بمعرف يساوي $id (على سبيل المثال، 1).
  • يحسب تاريخ الانتهاء بالإضافة إلى يوم واحد (2023-03-02).
  • يبحث في الحدث2 عن الصفوف بنفس تاريخ البدء (02-03-2023).
  • يُرجع المعرف وتاريخ البدء وسعر صف الحدث 2 المطابق.
يوضح هذا كيف يمكن لـ MySQL أن تكون ذاتية -يتيح لك الانضمام تحديد الصفوف ذات الصلة بناءً على معايير محددة، حتى داخل نفس الجدول.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3