Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Cekap Melakukan MySQL LEFT JOIN dengan Tiga Jadual?

Bagaimana untuk Cekap Melakukan MySQL LEFT JOIN dengan Tiga Jadual?

Susan Sarandon
Lepaskan: 2025-01-02 22:22:39
asal
614 orang telah melayarinya

How to Efficiently Perform a MySQL LEFT JOIN with Three Tables?

Memahami MySQL LEFT JOIN dengan Tiga Jadual

Penerangan Masalah

Pertimbangkan tiga jadual:

  • Orang (PersonID, Nama, SS): Mengandungi maklumat tentang individu.
  • Ketakutan (FearID, Fear): Menyenaraikan ketakutan yang berbeza.
  • Person_Fear (ID, PersonID, FearID): Mengaitkan individu dengan ketakutan mereka yang berkaitan.

Objektifnya adalah untuk memaparkan semua individu bersama-sama dengan sebarang ketakutan yang berkaitan dengannya (termasuk kes di mana seseorang tidak mempunyai ketakutan).

Menganalisis Pertanyaan Isu

Pertanyaan yang disediakan mempamerkan skema yang salah untuk menyertai jadual:

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

Klausa ON secara salah cuba untuk menyertai jadual Person_Fear pada PersonID dan bukannya FearID, iaitu lajur yang bersambung ke Ketakutan.

Penyelesaian yang Diperbaiki

Untuk melakukan ke kiri sertai dengan berkesan, pertimbangkan pendekatan berikut:

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
Salin selepas log masuk

Penjelasan:

  • Jadual Persons dibiarkan bercantum dengan Person_Fear on Person_Fear.PersonID = Persons.PersonID .
  • SERTAI DALAM bersarang menghubungkan Person_Fear to Fears pada Person_Fear.FearID = Fears.FearID.
  • Struktur ini memastikan semua rekod Orang disertakan, walaupun rekod yang tidak berkaitan.

Pertanyaan Alternatif:

Cara lain untuk mencapai hasil yang sama ialah:

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
Salin selepas log masuk

Ini pertanyaan menggunakan dua cantuman kiri untuk menyambungkan jadual, menghasilkan hasil yang serupa.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Melakukan MySQL LEFT JOIN dengan Tiga Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan