Rumah >pangkalan data >tutorial mysql >LEFT OUTER JOIN Teka-teki: Mengapa Lebih Banyak Keputusan Daripada Rekod Jadual Kiri?

LEFT OUTER JOIN Teka-teki: Mengapa Lebih Banyak Keputusan Daripada Rekod Jadual Kiri?

DDD
DDDasal
2025-01-25 01:26:09440semak imbas

LEFT OUTER JOIN Puzzle: Why More Results Than Left Table Records?

Left Outter Join Masalah: Bilangan rekod melebihi jadual kiri?

Walaupun Left Outer Join selalu mengembalikan semua rekod di meja kiri, pengguna dikelirukan dengan bilangan hasil yang dikembalikan oleh pertanyaan.

pertanyaan sql dengan masalah:

mendedahkan kebenaran:

Kesalahpahaman adalah bahawa diandaikan bahawa gabungan luar kiri hanya akan mengembalikan nilai null untuk baris yang tidak dipadankan di meja kiri. Malah, ia mengembalikan semua baris yang sepadan, walaupun berbilang baris di meja kanan sepadan dengan garis di meja kiri.
<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>

Contoh:

Pertimbangkan jadual berikut:

ditinggalkan gabungan berdasarkan memida -berasaskan akan menghasilkan hasil berikut:

seperti yang anda lihat, baris susp_visits.suspreason diulang kerana ia sepadan dengan dua baris dalam DIM_Member.

Kaedah alternatif:
**Susp_Visits** **Dim_Member**
MemID: 1 MembershipNum: 1
MemID: 1 MembershipNum: 2
MemID: 2 MembershipNum: NULL

Jika hasilnya hanya satu -satunya rolling di meja kiri, tidak ada pekerjaan luar kiri. Buat pemilihan mudah dari meja kiri:
**SuspReason** **SiteID** **MembershipNum**
1 1 1
1 1 2
2 2 NULL

Atas ialah kandungan terperinci LEFT OUTER JOIN Teka-teki: Mengapa Lebih Banyak Keputusan Daripada Rekod Jadual Kiri?. 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