Qual a diferença entre left join e right join?

29/06/2023

0

Estou iniciando e gostaria de aprender a diferença com um exemplo
Tiago Perini

Tiago Perini

Responder

Posts

30/06/2023

Arthur Heinrich

Imagine que você tem duas tabelas A e B, ambas com a coluna ID, com os seguintes valores:

Tabela A:
ID
--
 1
 2
 4
 
Tabela B:
ID
--
 1
 2
 3

Agora você quer fazer o join entre elas:

select
  A.ID as A,
  B.ID as B
from
  A inner join B on A.ID = B.ID;
 
O banco vai retornar os dados que existem em ambas tabelas:
 
A B
- -
1 1
2 2
 
select
  A.ID as A,
  B.ID as B
from
  A left outer join B on A.ID = B.ID;
 
O banco vai retornar todos os dados que existem na tabela A e os correspondentes que existirem na B:
 
A B
- ----
1 1
2 2
4 null
 
Em princípio, também poderia utilizar:
 
select
  A.ID as A,
  B.ID as B
from
  A right outer join B on A.ID = B.ID;
 
O banco vai retornar todos os dados que existem na tabela B e os correspondentes que existirem na A:
 
A    B
---- -
1    1
2    2
null 3
 
select
  A.ID as A,
  B.ID as B
from
  A full outer join B on A.ID = B.ID;
 
O banco vai retornar todos os dados que existem nas tabelas A e B, com os correspondentes que existirem na outra tabela:
 
A    B
---- ----
1    1
2    2
4    null
null 3

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar