Cara Menyertai Jadual Yang Sama Berbilang Kali dalam MySQL
Dalam senario di mana anda perlu mengaitkan rekod dari jadual yang sama beberapa kali dalam satu pertanyaan, MySQL menawarkan keupayaan untuk menyertai jadual dengan dirinya sendiri. Ini membolehkan anda mendapatkan semula data daripada baris berlainan jadual yang sama, dengan berkesan mewujudkan hubungan baharu antara baris.
Untuk menggambarkan konsep ini, pertimbangkan senario berikut:
Anda mempunyai dua jadual: "domain" dan "ulasan". Jadual "domain" menyimpan ID domain dan nama domain, manakala jadual "ulasan" mengandungi data semakan dan nama domain rujukan untuk kedua-dua pengirim (rev_dom_from) dan penerima (rev_dom_for).
Tugas anda adalah untuk memaparkan kedua-duanya nama domain pada halaman web. Walaupun anda boleh memaparkan satu nama domain dengan mudah menggunakan LEFT JOIN standard, persoalan timbul: bagaimana anda mendapatkan semula nama domain kedua daripada lajur "rev_dom_from"?
Penyelesaian terletak pada penggunaan berbilang gabungan. Dengan menyertai jadual "domain" beberapa kali, anda boleh mewujudkan perhubungan yang berbeza antara ulasan dan nama domain yang sepadan:
SELECT toD.dom_url AS ToURL, fromD.dom_url AS FromUrl, rvw.* FROM reviews AS rvw LEFT JOIN domain AS toD ON toD.Dom_ID = rvw.rev_dom_for LEFT JOIN domain AS fromD ON fromD.Dom_ID = rvw.rev_dom_from
Dalam pertanyaan ini:
Dengan menyamakan jadual yang digabungkan, anda boleh membezakan antara kedua-dua kejadian dan mendapatkan semula data yang diingini. Teknik menyertai jadual yang sama berbilang kali ini biasanya dirujuk sebagai "menyertai diri" dan boleh digunakan dalam pelbagai senario di mana anda perlu mewujudkan berbilang perhubungan dalam satu jadual.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Sendiri Jadual dalam MySQL untuk Mendapatkan Data daripada Berbilang Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!