SQL e suas peculiaridades
Sou novo no universo da programação, e a pouco tempo, estou trabalhando efetivamente com esse mundo maravilhoso, e conheço muitas pessoas empolgadas e legais. Estavamos esses dias discutindo sobre SQL e tirando algumas dúvidas que tinhamos com um colega mais experiente, e chegamos em uma questão que até então está sem explicação técnica.
Qual a diferença entre Left outer join e Left join no SQL. Algumas das conclusões que chegamos é que o left join surgiu por omissão do Outer, porém no fim, ambos chegam na mesma conclusão.
Mas será que há alguma diferença na performance, ou na forma de ler e organizar os resultados internamente.
LEFT JOIN
e LEFT OUTER JOIN
são equivalentes.
De forma geral, INNER
e OUTER
são opcionais. INNER
é o default, a menos que você use LEFT
, RIGHT
ou FULL
(e neste caso, implicitamente será OUTER
). Ou seja:
Isso aqui | É equivalente a isso |
---|---|
A LEFT JOIN B | A LEFT OUTER JOIN B |
A RIGHT JOIN B | A RIGHT OUTER JOIN B |
A FULL JOIN B | A FULL OUTER JOIN B |
A INNER JOIN B | A JOIN B |
basicamente cada tipo de join realiza a junção das tabelas de acordo com a matriz de venn.
- inner join, irá juntar as tabelas e considerar apenas o que está nas duas tabelas;
- left join, irá repetir a "tabela da esquerda", a tabela do seu primeiro critério, e irá buscar na segunda tabela;
- right join, irá repetir a "tabela da direita", a tabela do seu segundo critério, e irá buscar na primeira tabela;
- full join, irá mesclar todos os itens de todas as tabelas.
esse link aqui em baixo vai te explicar melhor e com imagens. https://www.w3schools.com/sql/sql_ref_join.asp