Resumo : neste tutorial, você aprenderá como usar LEFT JOIN
a cláusula SQLite para consultar dados de várias tabelas.
LEFT JOIN
Introdução à cláusula SQLite
Semelhante à INNER JOIN
cláusula, a LEFT JOIN
cláusula é uma cláusula opcional da SELECT
declaração. Você usa a LEFT JOIN
cláusula para consultar dados de diversas tabelas relacionadas.
Suponha que temos duas tabelas: A e B.
- A tem colunas m e f.
- B tem colunas n e f.
Para realizar a junção entre A e B usando LEFT JOIN
a cláusula, você usa a seguinte instrução:
SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A expressão A.f = B.f
é uma expressão condicional. Além do operador de igualdade (=), você pode usar outros operadores de comparação, como maior que (>), menor que (<), etc.
A instrução retorna um conjunto de resultados que inclui:
- Linhas na tabela A (tabela esquerda) que possuem linhas correspondentes na tabela B.
- Linhas na tabela A e as linhas na tabela B preenchidas com
NULL
valores caso a linha da tabela A não tenha nenhuma linha correspondente na tabela B.
Em outras palavras, todas as linhas da tabela A são incluídas no conjunto de resultados, independentemente de haver linhas correspondentes na tabela B ou não.
Caso você tenha uma WHERE
cláusula na instrução, a cláusula search_condition
in WHERE
é aplicada após a conclusão da correspondência da LEFT JOIN
cláusula.
Veja a ilustração a seguir da LEFT JOIN
cláusula entre as tabelas A e B.
Todas as linhas da tabela A estão incluídas no conjunto de resultados.
Como a segunda linha (a2,2)
não possui uma linha correspondente na tabela B, a LEFT JOIN
cláusula cria uma linha falsa preenchida com NULL
.
O diagrama de Venn a seguir ilustra a LEFT JOIN
cláusula.
Note-se que LEFT OUTER JOIN
é o mesmo que LEFT JOIN
.
LEFT JOIN
Exemplos de SQLite
Usaremos as tabelas artists
e albums
no banco de dados de exemplo para demonstração.
Um álbum pertence a um artista. No entanto, um artista pode ter zero ou mais álbuns.
Para encontrar artistas que não possuem álbuns utilizando a LEFT JOIN
cláusula, selecionamos os artistas e seus álbuns correspondentes. Se um artista não tiver nenhum álbum, o valor da AlbumId
coluna seráNULL.
Para exibir primeiro os artistas que não possuem nenhum álbum, temos duas opções:
- Primeiro, use
ORDER BY
a cláusula para listar as linhas cujos valoresAlbumId
sãoNULL
primeiro. - Segundo, use
WHERE
cláusula eIS NULL
operador para listar apenas artistas que não possuem nenhum álbum.
A instrução a seguir usa a LEFT JOIN
cláusula com a ORDER BY
cláusula.
SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução a seguir usa a LEFT JOIN
cláusula com a WHERE
cláusula.
SELECT
artists.ArtistId
, AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
WHERE
AlbumId IS NULL;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar LEFT JOIN
a cláusula SQLite para consultar dados de várias tabelas.