Walaupun LEFT OUTER JOIN direka untuk mengembalikan semua baris dari jadual kiri, set hasil kadangkala boleh lebih besar daripada yang dijangkakan. Ini berlaku disebabkan oleh ciri utama cara LEFT OUTER JOIN berfungsi.
Tidak seperti andaian mudah bahawa baris yang tidak sepadan dari jadual kiri hanya akan mempunyai nilai NULL dalam lajur jadual sebelah kanan, LEFT OUTER JOIN sebenarnya termasuk semua baris yang sepadan daripada kedua-dua jadual. Oleh itu, jika satu baris dalam jadual kiri sepadan dengan berbilang baris dalam jadual kanan, hasilnya akan mengandungi berbilang salinan baris jadual kiri itu. Ini serupa dengan tingkah laku INNER JOIN, menghasilkan kiraan baris yang lebih tinggi daripada yang dijangkakan.
Pertimbangkan pertanyaan SQL ini:
<code class="language-sql">SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum</code>
Perhatikan bahawa hanya lajur daripada SUSP.Susp_Visits
dipilih. Walau bagaimanapun, kerana potensi untuk berbilang padanan dalam DATA.Dim_Member
, setiap baris dalam SUSP.Susp_Visits
mungkin muncul beberapa kali dalam output. Ini menerangkan bilangan baris yang meningkat.
Jika anda hanya memerlukan data dari jadual kiri dan ingin mengelakkan baris pendua, LEFT OUTER JOIN tidak diperlukan. Kenyataan SELECT
ringkas dari jadual kiri akan memberikan data yang diperlukan tanpa kiraan baris yang melambung. Memahami tingkah laku ini adalah penting untuk menggunakan LEFT OUTER JOIN dengan berkesan dan mendapatkan hasil yang tepat.
Atas ialah kandungan terperinci Mengapakah LEFT OUTER JOIN Saya Mengembalikan Lebih Banyak Baris Daripada Jadual Kiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!