O que é uma junção à esquerda (left join) em SQL?
sobes.tech IA
Resposta da IA
A junção à esquerda (LEFT JOIN ou LEFT OUTER JOIN) em SQL é usada para combinar linhas de duas tabelas.
O resultado do LEFT JOIN inclui:
- Todas as linhas da tabela à esquerda (primeira).
- Linhas correspondentes da tabela à direita (segunda), onde a condição de junção é satisfeita.
- Para linhas da tabela à esquerda sem correspondência na direita, as colunas da tabela da direita conterão valores
NULL.
Exemplo de sintaxe:
SELECT <lista_de_colunas>
FROM <tabela_esquerda> AS L
LEFT JOIN <tabela_direita> AS R ON L.<coluna_de_junção> = R.<coluna_de_junção>;
Modo de funcionamento:
Cada linha da tabela à esquerda é percorrida. Para cada linha, uma busca por correspondências na tabela da direita é realizada de acordo com a condição ON.
- Se forem encontradas correspondências, a linha da tabela à esquerda é combinada com todas as linhas correspondentes da tabela da direita.
- Se nenhuma correspondência for encontrada, a linha da tabela à esquerda é incluída no resultado, e as colunas da tabela da direita são preenchidas com
NULL.
Representação visual:
Imagine dois conjuntos de dados: Left (tabela à esquerda) e Right (tabela à direita). LEFT JOIN retorna todos os elementos de Left, bem como aqueles de Right que têm correspondência em Left. Se em Left houver elementos sem correspondência em Right, esses elementos de Left ainda serão incluídos no resultado, mas os campos correspondentes de Right estarão vazios (NULL).
Comparação com outros tipos de JOIN:
| Tipo de JOIN | Descrição |
|---|---|
| INNER JOIN | Retorna apenas as linhas onde há correspondência entre ambas as tabelas. |
| LEFT JOIN | Retorna todas as linhas da tabela à esquerda e as linhas correspondentes da direita. NULL para as linhas sem correspondência na direita. |
| RIGHT JOIN | Retorna todas as linhas da tabela à direita e as linhas correspondentes da esquerda. NULL para as linhas sem correspondência na esquerda. |
| FULL OUTER JOIN | Retorna todas as linhas quando há correspondência em qualquer uma das tabelas. NULL para as linhas sem correspondência em ambas as tabelas. |
Assim, o LEFT JOIN é útil quando se deseja obter uma lista completa de registros de uma tabela e complementá-los com informações de outra tabela, mesmo que nem todos os registros tenham dados correspondentes.