Sobes.tech
Junior

Quais são as diferenças entre LEFT JOIN e RIGHT JOIN em SQL?

sobes.tech IA

Resposta da IA

LEFT JOIN devolve todas as linhas da tabela à esquerda (primeira) e as linhas correspondentes da tabela à direita (segunda). Se não houver correspondências na tabela da direita, o resultado contém NULL para as colunas da tabela da direita.

RIGHT JOIN devolve todas as linhas da tabela à direita (segunda) e as linhas correspondentes da tabela à esquerda (primeira). Se não houver correspondências na tabela da esquerda, o resultado contém NULL para as colunas da tabela da esquerda.

A principal diferença é qual tabela é considerada "completa", ou seja, de qual tabela serão devolvidas todas as linhas independentemente de existirem correspondências na outra tabela.

Exemplo em SQL:

Tabela TabelaA:

ID ValorA
1 A1
2 A2
3 A3

Tabela TabelaB:

ID ValorB
2 B2
3 B3
4 B4

LEFT JOIN:

SELECT *
FROM TabelaA
LEFT JOIN TabelaB ON TabelaA.ID = TabelaB.ID;

Resultado do LEFT JOIN:

ID (de TabelaA) ValorA ID (de TabelaB) ValorB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN:

SELECT *
FROM TabelaA
RIGHT JOIN TabelaB ON TabelaA.ID = TabelaB.ID;

Resultado do RIGHT JOIN:

ID (de TabelaA) ValorA ID (de TabelaB) ValorB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

LEFT JOIN e RIGHT JOIN muitas vezes são intercambiáveis trocando a ordem das tabelas na consulta: A LEFT JOIN B é equivalente a B RIGHT JOIN A.