Rumah >pangkalan data >tutorial mysql >SQL LEFT JOIN lwn. Berbilang Jadual dalam FROM Klausa: Mana Yang Lebih Baik?

SQL LEFT JOIN lwn. Berbilang Jadual dalam FROM Klausa: Mana Yang Lebih Baik?

Barbara Streisand
Barbara Streisandasal
2025-01-20 11:22:09566semak imbas

SQL LEFT JOIN vs. Multiple Tables in FROM Clause: Which is Better?

SQL JOIN sintaks: LEFT JOIN dan gabungan berbilang jadual dalam klausa FROM

Apabila melakukan gabungan SQL dalaman, anda mempunyai dua pilihan: sintaks lama, yang menyenaraikan jadual dalam klausa FROM dan menentukan syarat gabungan dalam klausa WHERE, atau sintaks yang lebih baharu, yang menggunakannya terus dalam klausa FROM KIRI SERTAI. Walaupun kedua-dua sintaks boleh menghasilkan hasil yang sama, terdapat banyak sebab mengapa menggunakan sintaks yang lebih baru adalah lebih baik.

Kekaburan sintaks lama

Sintaks lama adalah samar-samar dalam pertanyaan yang menggabungkan INNER JOIN dan OUTER JOIN. Bergantung pada strategi pengoptimum pertanyaan, susunan penyambungan dilakukan mempengaruhi keputusan. Sebagai contoh, LEFT JOIN diikuti dengan INNER JOIN mungkin mengecualikan baris yang sepadan yang tidak memenuhi kriteria inner join, manakala urutan terbalik mungkin termasuk baris yang tidak sepadan.

Kejelasan dan Kejelasan

Sintaks baharu menggunakan LEFT JOIN memberikan lebih kejelasan dan kejelasan. Ia menentukan perhubungan logik antara jadual, membenarkan pengoptimum pertanyaan mengendalikan cantuman dengan cekap. Dengan memisahkan syarat cantuman daripada keadaan penapis baris, klausa LEFT JOIN memastikan semua baris daripada jadual kiri disertakan tanpa mengira sama ada baris yang sepadan wujud dalam jadual lain.

Peningkatan prestasi

Dengan menggunakan LEFT JOIN dalam klausa FROM, pengoptimum pertanyaan boleh mengoptimumkan operasi gabungan secara bebas daripada penapis baris. Ini boleh meningkatkan prestasi dengan mengurangkan bilangan hasil gabungan perantaraan dan meminimumkan kesan penapisan klausa WHERE pada pelaksanaan gabungan.

Ketekalan dan penyeragaman

Sintaks baharu adalah lebih konsisten merentas vendor pangkalan data yang berbeza, terutamanya Microsoft SQL Server, yang menamatkan sintaks sambung luar yang lama tetapi bukan sintaks sambung dalam. Ini membantu memastikan keserasian pertanyaan dan mudah alih antara pangkalan data.

Contoh

Andaikan anda mempunyai tiga jadual: Syarikat, Jabatan dan Pekerja, dengan perhubungan hierarki antara mereka. Untuk mendapatkan semula semua syarikat, jabatan dan pekerja serta menapis jabatan dengan sekurang-kurangnya seorang pekerja, anda boleh menggunakan pertanyaan berikut:

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

Pertanyaan ini menentukan JOIN KIRI antara Syarikat dan jadual Jabatan dan Pekerja yang digabungkan dalam. Ia memastikan semua syarikat disertakan tanpa mengira sama ada mereka mempunyai jabatan atau pekerja. Baris untuk jabatan atau pekerja yang tidak sepadan akan mempunyai nilai NULL dalam lajur yang sepadan.

Kesimpulan

Walaupun sintaks lama dan baharu untuk cantuman dalaman dalam SQL boleh menghasilkan hasil yang sama, menggunakan LEFT JOIN dalam klausa FROM ialah pendekatan yang diutamakan. Ia memberikan kejelasan, kejelasan, prestasi yang dipertingkatkan, konsistensi merentas vendor pangkalan data, dan lebih fleksibiliti dalam menentukan syarat sertaan dan syarat penapisan baris.

Atas ialah kandungan terperinci SQL LEFT JOIN lwn. Berbilang Jadual dalam FROM Klausa: Mana 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