Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah MySQL Self-Joins Membantu Mencari Acara Yang Berlaku Satu Hari Selepas Satu Hari?

Bagaimanakah MySQL Self-Joins Membantu Mencari Acara Yang Berlaku Satu Hari Selepas Satu Hari?

DDD
DDDasal
2024-11-12 19:56:021041semak imbas

How do MySQL Self-Joins Help Find Events That Occur One Day After Another?

Memahami MySQL Self-Joins

Memahami penyambungan diri dalam MySQL boleh menjadi menakutkan, terutamanya jika anda menemui mereka buat kali pertama . Mari kita rungkai pertanyaan berikut untuk memahami mekanismenya:

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

Memecahkan Pertanyaan:

DARI dan SERTAI:

  • Pertanyaan ini menggabungkan data daripada dua jadual yang sama, mm_eventlist_dates, menggunakan kata kunci JOIN.
  • Ia mencipta dua jadual maya, event1 dan event2, mewakili jadual yang sama dua kali.

WHERE:

  • Klausa ini memilih rekod tertentu daripada acara1 berdasarkan IDnya. Katakan rekod ini mewakili Peristiwa1.

HIDUP:

  • Klausa ini mentakrifkan hubungan antara dua jadual maya.
  • Ia membandingkan tarikh mula acara2 dengan tarikh tamat acara1, diimbangi dengan satu hari.
  • Syarat ini memastikan tarikh mula acara2 hendaklah tepat sehari selepas acara1 tamat.

PILIH:

  • Klausa ini menentukan medan yang anda ingin dapatkan daripada pertanyaan.
  • Dalam kes ini, ia memilih ID, tarikh mula dan harga acara2.

Cara Pertanyaan Berfungsi:

  1. Pertanyaan mula-mula mengenal pasti rekod daripada acara1 yang sepadan ID yang ditentukan melalui pembolehubah $id.
  2. Untuk rekod yang dikenal pasti daripada peristiwa1, ia mengira tarikh iaitu sehari selepas tarikh tamatnya.
  3. Tarikh yang dikira kemudiannya dibandingkan dengan tarikh mula rekod dalam acara2.
  4. Memandangkan acara1 dan acara2 adalah jadual yang sama, satu-satunya rekod yang sepadan dalam acara2 akan mempunyai tarikh mula iaitu sehari selepas acara1 tamat.
  5. Rekod padanan daripada acara2 ini mewakili acara berikut (Acara2) yang berlaku sehari selepas Acara1.
  6. Akhir sekali, pertanyaan mendapatkan ID, tarikh mula dan harga Acara2 dan memaparkannya sebagai hasilnya.

Atas ialah kandungan terperinci Bagaimanakah MySQL Self-Joins Membantu Mencari Acara Yang Berlaku Satu Hari Selepas Satu Hari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn