JOIN
O Inner Join tem como objetivo aglutinar duas ou mais tabelas mediante atributos comuns que estão presentes nas mesmas, onde para realizarmos esta junção, utilizamos as chaves primárias / estrangeiras.
Dentre as vantagens de se utilizar o Inner Join, podemos considerar:
- Sua sintaxe ser mais organizada e facíl de compreender;
- Facilidade para se achar o melhor plano de ação para realizar consultas.
Inner Join
Sintaxe
select <campos> from <tabela 1>
inner join <tabela 2> on <campo tabela 1> = <campo tabela 2>
select * from instituto_aluno
inner join instituto_curso on (alun_curs_id = curs_id);
Exemplos
select * from instituto_aluno a
inner join instituto_curso c on (a.alun_curs_id = c.curs_id);
Equivalente
select * from instituto_aluno a,instituto_curso c where a.alun_curs_id = c.curs_id;
OBS: No INNER JOIN, caso alguma tabela tenha algum campo em branco, o resultado será omitido.
Para deixar mais completa, pode adicionar a cláusura where, order e etc
O uso do INNER é opcional.
CROSS JOIN
Esse não é bem um tipo de junção, é conhecido como conexão cruzada, ou seja, resulta no cruzamento de cada linha de uma tabela com todas as linhas de outra tabela.
Sintaxe
select <campos> from <tabela 1>
cross join <tabela 2>
select * from instituto_aluno, instituto_curso;
Equivalente
select * from instituto_aluno a
inner join instituto_curso c ;
LEFT JOIN
Similar ao INNER JOIN, porém ele trás todos os campos das tabelas A e B, mesmo que a tabela A tenha algum campo vazio.
Sintaxe
select <campos> from <tabela 1>
left join <tabela 2> on <campo tabela 1> = <campo tabela 2>
select * from instituto_aluno
left join instituto_curso on (alun_curs_id = curs_id);
Exemplos
select * from instituto_aluno a
left join instituto_curso c on (a.alun_curs_id = c.curs_id);
Para deixar mais completa, pode adicionar a cláusura where, order e etc
RIGHT JOIN
Similar ao INNER JOIN, porém ele trás todos os campos das tabelas A e B, mesmo que a tabela B tenha algum campo vazio.
Sintaxe
select <campos> from <tabela 1>
right join <tabela 2> on <campo tabela 1> = <campo tabela 2>
select * from instituto_aluno
right join instituto_curso on (alun_curs_id = curs_id);
Exemplos
select * from instituto_aluno a
right join instituto_curso c on (a.alun_curs_id = c.curs_id);
Para deixar mais completa, pode adicionar a cláusura where, order e etc
Para que servem os outer joins?
Servem para fazer as junções entre duas ou mais tabelas, cruzando informações, combinando registros, testando desigualdades.
OUTER JOINS
Sintaxe
select <campos> from <tabela 1>
full outer join <tabela 2> on <campo tabela 1> = <campo tabela 2>
select * from instituto_aluno
full outer join instituto_curso on (alun_curs_id = curs_id);
Exemplos
select * from instituto_aluno a
full outer join instituto_curso c on (a.alun_curs_id = c.curs_id);
select * from instituto_aluno a
full outer join instituto_curso c on (a.alun_curs_id = c.curs_id)
where a.alun_curs_id is null or c.curs_id is null;
JOIN
By walternascimento
JOIN
- 302