Kiri luar bergabung dan kiraan baris yang tidak dijangka: melihat lebih dekat
Dalam pangkalan data SQL, gabungan luar kiri menggabungkan data dari dua jadual, menjamin kemasukan semua baris dari jadual kiri dalam set hasil. Walau bagaimanapun, salah tanggapan umum ialah output akanselalu mempunyai bilangan baris yang sama seperti jadual kiri. Ini tidak semestinya benar.
Tingkah laku gabungan luar kiri adalah untuk memadankan setiap baris dari meja kiri dengan baris yang sepadan di meja kanan. Jika perlawanan dijumpai, data dari kedua -dua jadual digabungkan ke dalam satu baris. Secara kritikal, jika tidak perlawanan didapati di meja yang betul untuk baris yang diberikan di meja kiri, baris meja kiri masih termasuk dalam hasilnya, tetapi dengan nilai untuk lajur dari jadual kanan . NULL
berbilang baris di meja kanan. Dalam kes ini, gabungan luar kiri akan menjana pelbagai baris dalam output, satu untuk setiap perlawanan di sebelah kanan, yang membawa kepada kiraan baris melebihi jadual kiri asal.
mari kita menggambarkan dengan contoh pertanyaan SQL:
<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>
. Walau bagaimanapun, jika SUSP.Susp_Visits
dalam MemID
sepadan dengan pelbagai entri dalam SUSP.Susp_Visits
, hasilnya akan mengandungi pelbagai baris untuk setiap baris DATA.Dim_Member
. SUSP.Susp_Visits
<code class="language-sql">SELECT SuspReason, SiteID FROM SUSP.Susp_Visits</code>
Atas ialah kandungan terperinci Mengapa Gabungan Luar Kiri Saya Mengembalikan Lebih Banyak Rekod Daripada Jadual Kiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!