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

كيفية البحث عن الأحداث التي تتبع حدثًا آخر بعدد محدد من الأيام في MySQL؟

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

How to Find Events Following Another Event by a Specific Number of Days in MySQL?

فهم الصلات الذاتية لـ MySQL

الصلات الذاتية، وهي تقنية مستخدمة في قواعد بيانات SQL، تسمح لك بالاستعلام عن جدول مقابل نفسه. في هذه الحالة، سنتعمق في عملية الانضمام الذاتي في 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;

1. استخراج البيانات (من)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

يستخرج هذا الجزء البيانات من جدولين، mm_eventlist_dates، ممثلين بالحدث 1 والحدث 2، للانضمام الذاتي.

2. شرط الانضمام (ON)

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

يحدد هذا الشرط الصلة بين الجدولين. وهو يحدد أن تاريخ بدء الحدث2 يجب أن يكون مساوياً ليوم واحد بعد تاريخ انتهاء الحدث1.

3. التصفية (أين)

WHERE event1.id=$id

يحصر هذا الفلتر النتائج بالأحداث التي لها معرف يطابق المعرف $ المحدد.

4. تحديد الحقل (SELECT)

SELECT event2.id, event2.startdate, event2.price

يحدد هذا الجزء الحقول من جدول events2 التي يجب تضمينها في مجموعة النتائج: ID وتاريخ البدء والسعر.

كيف يعمل:

  1. يبدأ الاستعلام باستخراج مجموعتين من السجلات من جدول mm_eventlist_dates.
  2. يعمل شرط الانضمام على تضييق النتيجة عن طريق تصفية سجلات الحدث2 التي تتطابق تواريخ بدايتها بعد يوم واحد من تواريخ انتهاء سجلات الحدث1.
  3. يطبق عامل التصفية معرف $ المحدد من قبل المستخدم لتحسين سجلات الحدث1 بشكل أكبر.
  4. تتضمن النتائج التي تم إرجاعها الحقول المطلوبة من جدول events2، والتي تمثل الأحداث التي تتبع الحدث1 بيوم واحد.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3