Diferente do join que faz as ligações necessárias e monta a query o union executa duas ou mais queries distintas e retorna o resultado em sequencia.
Por exemplo, se no banco de dados existe duas tabelas uma para compra e outra para venda e quer ver os registro de movimento dos itens de cada tabela usa o union para fazer essa consulta buscando em uma e depois na outra.
Também é usada para determinar o menor preço de venda onde existe uma tabela de produto, outra de preço, outra de promoções com algumas diárias e outras mensais. Pode se fazer a consulta ligando os itens com essas tabelas separando ou tipos e depois juntando tudo com union para a comparação.
Veja também: Quais as restrições no uso de union?.
Existem vários tipos de JOIN, que fazem cruzamento de dados das tabelas de formas diferentes. Nesse site iremos ver as diferenças entre junções internas e externas do SQL. Respondendo algumas questões básicos sobre o uso de cada tipo de join, usando exemplos práticos com select's e exemplos prontos.
Questões que serão respondidas no artigo:
Quais os principais tipos de JOIN?
Quais os três tipos básicos de associação join?
O que faz e como funciona cada tipo de JOIN?
O que faz o INNER JOIN?
O que faz o Outer JOIN?
O que é Full Outer JOIN?
O que é full join SQL?
O que é natural JOIN?
Como funciona o JOIN?
Como Fazer um INNER JOIN, LEFT JOIN e RIGHT JOIN em SQL?
Como usar o Full Outer Join?
Como usar natural join?
Qual a diferença de Inner JOIN e JOIN?
Qual é a diferença entre INNER JOIN e OUTER JOIN?
Qual a diferença do Inner JOIN para o LEFT JOIN?
Qual a diferença de LEFT JOIN e Left Outer Join?
Quais as diferenças entre Natural Join e Inner Join?
Quando usar LEFT JOIN?
Quando usar o right join?
Quando usar natural JOIN?
Quando usar Left e Right Join?
É possível fazer um inner join de uma tabela para ela mesma?
Talvez antes de continuar você precise de um conhecimento prévio então de uma olhada em:
O que é uma instrução SQL?
O que significa a expressão JOIN?
O que é comando SQL JOIN e para que serve?
Como fazer um JOIN no SQL?
Veja mais em:
Como funciona uma Trigger?
Quais os principais comandos SQL?
Quais são as principais funções de agregação?
Quais são os 4 tipos possíveis de comandos SQL?
Qual dos seguintes não é um tipo de JOIN usado em SQL?
Qual a diferença entre JOIN e Union?
Quais são os 3 grupos de instruções em linguagem SQL?
Qual SQL é mais usado?
Quais são os três tipos de blocos Pl-SQL?
O que são tipos UNION?
Para que serve a cláusula having?
exemplos:
Como juntar dados de duas tabelas SQL?
select * from tabela1 tb1 left join tabela2 tb2 on (tb1.id = tb2.id_tabela1) right join tabela2 tb2 on (tb1.id = tb2.id_tabela1) group by tb1.id
No mysql não existe esse comando predeterminado. Para isso simulo ele usando o left join e o right join, e agrupando.
O que seria:
select * from tabela1 tb1 full join tabela2 tb2 on (tb1.id = tb2.id_tabela1)
Fica:
select * from tabela1 tb1 left join tabela2 tb2 on (tb1.id = tb2.id_tabela1) right join tabela2 tb2 on (tb1.id = tb2.id_tabela1) group by tb1.id