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.