Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Meninggalkan Tiga Jadual dengan Cekap untuk Mendapatkan Perhubungan Orang-Ketakutan dalam MySQL?

Bagaimanakah Saya Boleh Meninggalkan Tiga Jadual dengan Cekap untuk Mendapatkan Perhubungan Orang-Ketakutan dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2024-12-27 16:46:18869semak imbas

How Can I Efficiently LEFT JOIN Three Tables to Retrieve Person-Fear Relationships in MySQL?

MySQL LEFT JOIN 3 Tables for Fear and Person Relationships

Dalam satu set tiga jadual hubungan, seseorang boleh mendapatkan semula senarai lengkap orang bersama-sama dengan sebarang ketakutan yang berkaitan. Ini boleh dicapai melalui pertanyaan LEFT JOIN yang melibatkan jadual 'Orang,' 'Ketakutan' dan 'Person_Fear'.

Jadual 'Orang' menyimpan maklumat peribadi, termasuk 'Nama' dan 'SS' (sosial nombor keselamatan), manakala jadual 'Fears' menyenaraikan potensi ketakutan, dan jadual 'Person_Fear' mewujudkan hubungan antara orang dan mereka ketakutan.

Dalam percubaan sebelumnya, pertanyaan LEFT JOIN telah dibina tetapi mengalami ralat. Kod yang salah yang diberikan ialah:

SELECT persons.name, 
       persons.ss, 
       fears.fear 
FROM   persons 
       LEFT JOIN fears 
              ON person_fear.personid = person_fear.fearid 

Ralat berpunca daripada salah merujuk 'person_fear' dua kali dalam klausa gabungan. Sebaliknya, gabungan harus menghubungkan 'Orang' kepada 'Person_Fear' berdasarkan lajur 'PersonID' mereka dan 'Person_Fear' kepada 'Fears' menggunakan 'FearID.'

Berikut ialah pertanyaan LEFT JOIN yang diperbetulkan:

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 LEFT JOIN ini membina senarai yang mengandungi semua orang, termasuk mereka tanpa sebarang ketakutan yang berkaitan. Set hasil akan termasuk lajur 'Nama,' 'SS' dan 'Takut' untuk setiap rekod.

Sebagai alternatif, pertanyaan LEFT JOIN berikut mencapai hasil yang sama:

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

Dengan menggunakan LEFT JOINs dengan berkesan, pertanyaan pangkalan data boleh mendapatkan semula data yang komprehensif dan saling berkaitan daripada berbilang jadual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meninggalkan Tiga Jadual dengan Cekap untuk Mendapatkan Perhubungan Orang-Ketakutan dalam MySQL?. 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