Menggunakan dua LEFT JOIN
s yaitu
SELECT <some columns>
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 ON <condition1>
LEFT JOIN Table2 AS t3 ON <condition2>
Apakah ini sama dengan menggunakan AND
dalam satu LEFT JOIN
? yaitu
SELECT <some columns>
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 ON <condition1>
AND <condition2>
Keduanya sama atau berbeda (secara umum)?
sql-server-2012
join
0x6773
sumber
sumber
Jawaban:
Mereka berbeda. Di opsi pertama Anda mendapatkan 2 kali
Table2
ke permintaan Anda. Sekalit2
dan sekali sebagait3
. Keduanya memiliki konten yang berbeda dan Anda harus memasangnya kembali. Bagi saya ini lebih merupakan OR daripada AND . Di opsi kedua Anda hanya mendapatkanTable2
baris yang memenuhi kedua kriteria.Misalkan Anda memiliki
Table2
konten berikut:Misalkan Anda ingin memiliki baris yang sedang
Blue
danS
. Dalam opsi pertama Anda, Anda mendapatkan semua baris (t2
misalnya dengan semuaBlue
dant3
dengan semuaS
) dan dalam opsi kedua Anda, Anda hanya mendapatkan baris 2.sumber
Table1
baris menginginkan warna biru dan ukuran S. Jadi, gabungan pertama memberikan duaTable2
kecocokan, sehingga menduplikasiTable1
baris, dan gabungan kedua memberikan dua kecocokan untuk setiap salinan, sehingga menghasilkan total empat baris.