Rumah >pangkalan data >tutorial mysql >Bagaimanakah penyambungan diri berfungsi dalam MySQL untuk membandingkan baris dari jadual yang sama?

Bagaimanakah penyambungan diri berfungsi dalam MySQL untuk membandingkan baris dari jadual yang sama?

DDD
DDDasal
2024-11-19 00:22:02786semak imbas

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

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.price
Ia 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!

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