Usando dois LEFT JOIN
s
SELECT <some columns>
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 ON <condition1>
LEFT JOIN Table2 AS t3 ON <condition2>
é o mesmo que usar AND
em single LEFT JOIN
? ie
SELECT <some columns>
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 ON <condition1>
AND <condition2>
Ambos são iguais ou diferentes (em geral)?
sql-server-2012
join
0x6773
fonte
fonte
Respostas:
Eles são diferentes. Na primeira opção, você recebe 2 vezes
Table2
em sua consulta. Uma vez comot2
e uma vez comot3
. Ambos têm um conteúdo diferente e você deve reuni-los de alguma forma. Para mim, isso é mais um OR em vez de um AND . Na segunda opção, você obtém apenas asTable2
linhas que atendem aos dois critérios.Suponha que você tenha
Table2
o seguinte conteúdo:Suponha que você queira ter as linhas que são
Blue
eS
. Na primeira opção, você obtém todas as linhas (t2
por exemplo, com todasBlue
et3
com todasS
) e na segunda opção, apenas a linha 2.fonte
Table1
linha quer a cor azul e o tamanho S. Portanto, a primeira junção fornece duasTable2
correspondências, duplicando aTable1
linha e a segunda junção fornece duas correspondências para cada uma das cópias, resultando em quatro linhas no total.