Rumah >pangkalan data >tutorial mysql >Bagaimanakah penyambungan diri berfungsi dalam MySQL untuk membandingkan baris dari jadual yang sama?
Bagaimanakah MySQL Self-Join Berfungsi?
Sertai sendiri dalam MySQL melibatkan penggabungan dua contoh jadual yang sama, biasanya dengan alias berbeza. Ia membolehkan anda membandingkan baris jadual yang sama berdasarkan kriteria tertentu.
Pertanyaan Diterangkan
Mari kita pecahkan pertanyaan yang diberikan:
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
ON Klausa
Ini bergabung dengan dua kejadian jadual berdasarkan syarat:
FROM mm_eventlist_dates event1 JOIN mm_eventlist_dates event2
Ia mencari baris dalam acara2 di mana tarikh mula sepadan dengan hari selepas tarikh tamat baris yang sepadan dalam acara1.
WHERE Klausa
Ini menapis keputusan berdasarkan syarat yang dinyatakan:
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
Ia memilih baris daripada acara1 di mana id sepadan dengan pembolehubah yang diberikan, $id.
PILIH Klausa
Ini memilih medan yang dikehendaki daripada baris yang dicantumkan:
WHERE event1.id=$id
Bayangkan anda mempunyai rekod berikut dalam jadual mm_eventlist_dates:
Dengan pertanyaan yang diberikan:
Ia mendapatkan semula acara1 dengan id bersamaan dengan $id (cth., 1).
SELECT event2.id, event2.startdate, event2.priceIa mengira tarikh tamat ditambah satu hari (2023-03-02).Ia mencari acara2 untuk baris dengan tarikh mula yang sama (2023-03-02 ).
Ia mengembalikan ID, tarikh mula dan harga baris acara2 yang sepadan.
Ini menunjukkan cara penyertaan sendiri MySQL membolehkan anda mengenal pasti baris berkaitan berdasarkan yang ditentukan kriteria, walaupun dalam jadual yang sama.
Atas ialah kandungan terperinci Bagaimanakah penyambungan diri berfungsi dalam MySQL untuk membandingkan baris dari jadual yang sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!