Rumah >pangkalan data >tutorial mysql >Kiri JOIN lwn. Berbilang Jadual dalam FROM Klausa: Kaedah Join SQL Manakah yang Lebih Baik?

Kiri JOIN lwn. Berbilang Jadual dalam FROM Klausa: Kaedah Join SQL Manakah yang Lebih Baik?

Susan Sarandon
Susan Sarandonasal
2025-01-20 11:11:11296semak imbas

Left JOIN vs. Multiple Tables in FROM Clause: Which SQL Join Method is Better?

Perbandingan kaedah SQL JOIN: LEFT JOIN dan berbilang jadual yang disenaraikan dalam klausa FROM

Kebanyakan dialek SQL menyokong kedua-dua kaedah, tetapi penting untuk memahami kebaikan dan keburukan setiap kaedah apabila menggunakan sambungan pangkalan data. Artikel ini meneroka potensi manfaat dan kelemahan menggunakan sintaks LEFT JOIN dalam cantuman dalaman berbanding penyenaraian berbilang jadual dalam klausa FROM.

Penghapusan beransur-ansur kaedah berbilang jadual

Sintaks tradisional (hanya menyenaraikan jadual dalam klausa FROM dan menggunakan klausa WHERE untuk menetapkan syarat gabungan) sedang ditamatkan secara berperingkat memihak kepada sintaks LEFT JOIN. Ini bukan sekadar pilihan estetik, ia juga membantu mengurangkan potensi kekaburan apabila menggabungkan cantuman dalaman dan luaran dalam satu pertanyaan.

Kekaburan dan menyertai pergantungan pesanan

Pertimbangkan senario berikut: Apabila menanyakan tiga jadual yang saling berkaitan (syarikat, jabatan dan pekerja), kekaburan berlaku menggunakan sintaks lama. Katakan matlamatnya ialah untuk menyenaraikan semua syarikat dengan jabatan dan pekerja mereka, di mana jabatan mesti mempunyai pekerja untuk disertakan, tetapi syarikat tanpa jabatan mesti tetap muncul.

Gunakan sintaks lama:

<code class="language-sql">SELECT * -- 为简单起见
FROM Company, Department, Employee
WHERE Company.ID *= Department.CompanyID
  AND Department.ID = Employee.DepartmentID</code>

Sintaks LEFT JOIN, sebaliknya, menawarkan fleksibiliti yang lebih besar:

<code class="language-sql">SELECT *
FROM Company
     LEFT JOIN (
         Department INNER JOIN Employee ON Department.ID = Employee.DepartmentID
     ) ON Company.ID = Department.CompanyID</code>

Sintaks ini secara eksplisit menyatakan bahawa penyertaan pekerja jabatan harus dilakukan terlebih dahulu, dan kemudian hasilnya harus dibiarkan digabungkan dengan syarikat.

Tapis lajur gabungan

Satu lagi kelebihan sintaks LEFT JOIN ialah keupayaannya untuk menapis pada lajur gabungan tanpa menjejaskan baris induk. Contohnya, jika anda memerlukan jabatan yang namanya mengandungi huruf "X", sintaks LEFT JOIN boleh mencapai ini:

<code class="language-sql">SELECT *
FROM Company
     LEFT JOIN (
         Department INNER JOIN Employee ON Department.ID = Employee.DepartmentID
     ) ON Company.ID = Department.CompanyID AND Department.Name LIKE '%X%'</code>

Kesimpulan

Sintaks LEFT JOIN memberikan tahap kejelasan dan kawalan yang lebih tinggi ke atas operasi cantuman daripada menyenaraikan berbilang jadual dalam klausa FROM untuk cantuman dalaman. Ia menghilangkan kekaburan, membenarkan penapisan yang lebih fleksibel dan kurang terdedah kepada masalah pergantungan pesanan. Oleh itu, sintaks LEFT JOIN menjadi kaedah pilihan untuk melaksanakan gabungan pangkalan data yang cekap dan tidak jelas.

Atas ialah kandungan terperinci Kiri JOIN lwn. Berbilang Jadual dalam FROM Klausa: Kaedah Join SQL Manakah yang Lebih Baik?. 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