Sobes.tech
Middle

Quais tipos de JOIN existem em SQL e quais são as diferenças entre LEFT JOIN, RIGHT JOIN e INNER JOIN?

sobes.tech IA

Resposta da IA

Existem vários tipos de JOIN em SQL que permitem combinar linhas de duas tabelas com base numa condição específica:

  • INNER JOIN — devolve apenas as linhas que têm correspondências em ambas as tabelas.
  • LEFT JOIN (LEFT OUTER JOIN) — devolve todas as linhas da tabela da esquerda e as linhas correspondentes da direita. Se não houver correspondência, os campos da tabela da direita serão NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — devolve todas as linhas da tabela da direita e as correspondentes da esquerda, com NULL onde não há correspondência.

Exemplo:

Tabela A:

id nome
1 Alice
2 Bob

Tabela B:

id cidade
1 Londres
3 Berlim
  • INNER JOIN por id retornará apenas id=1 (Alice e Londres).
  • LEFT JOIN retornará:
    • id=1 (Alice, Londres)
    • id=2 (Bob, NULL)
  • RIGHT JOIN retornará:
    • id=1 (Alice, Londres)
    • id=3 (NULL, Berlim)

Desta forma, LEFT e RIGHT JOIN mantêm todas as linhas de uma das tabelas, complementando-as com dados da outra, enquanto o INNER JOIN mantém apenas as correspondentes.