Berbilang Jadual Menyertai dengan MySQL LEFT JOIN
Dalam senario ini, kami menghadapi cabaran untuk menyertai tiga jadual: 'Orang' , 'Ketakutan' dan 'Orang_Takut'. Objektifnya adalah untuk memaparkan semua rekod daripada jadual 'Orang' bersama-sama dengan sebarang ketakutan yang berkaitan, walaupun sesetengah orang tidak mempunyai ketakutan.
Pada mulanya, pertanyaan LEFT JOIN yang disediakan cuba untuk menyertai 'Person_Fear.PersonID' dengan ' Person_Fear.FearID', yang menghasilkan keputusan yang salah. Pendekatan yang betul ialah menyertai 'Person_Fear' dengan 'Orang' dan 'Ketakutan' berdasarkan perhubungan utama asing yang betul.
Penyelesaian:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID
Pertanyaan yang disemak ini dengan berkesan menggabungkan 'Orang' ke 'Person_Fear' dan 'Fears' melalui kunci asing masing-masing. SERTAI KIRI antara 'Orang' dan 'Person_Fear' memastikan semua rekod daripada jadual 'Orang' disertakan, tidak kira sama ada mereka mempunyai sebarang ketakutan yang berkaitan.
Penyelesaian Alternatif:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons LEFT JOIN Person_Fear INNER JOIN Fears ON Person_Fear.FearID = Fears.FearID ON Person_Fear.PersonID = Persons.PersonID
Pendekatan alternatif ini menggunakan JOIN DALAM antara 'Person_Fear' dan 'Fears' untuk menapis kepada ketakutan yang berkaitan. SERTAI KIRI seterusnya dengan 'Orang' masih memastikan semua individu disertakan dalam keputusan.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Tiga Jadual dengan Benar dalam MySQL Menggunakan LEFT JOIN untuk Mendapatkan Semua Orang dan Ketakutan Mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!