Resumo :neste tutorial, você aprenderá como usar SQLite
LEFT JOIN
cláusula para consultar dados de várias tabelas. Introdução ao SQLite LEFT JOIN
cláusula
Semelhante ao
INNER JOIN
cláusula, a LEFT JOIN
cláusula é uma cláusula opcional do SELECT
demonstração. Você usa o LEFT JOIN
cláusula para consultar dados de várias 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
cláusula, você usa a seguinte declaração:SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;
Code language: SQL (Structured Query Language) (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 têm 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 um
WHERE
cláusula na instrução, a search_condition
no WHERE
A cláusula é aplicada após a correspondência do LEFT JOIN
cláusula completa. Veja a ilustração a seguir do
LEFT JOIN
cláusula entre as tabelas A e B. Todas as linhas da tabela A são incluídas no conjunto de resultados.
Porque a segunda linha
(a2,2)
não tem uma linha correspondente na tabela B, o LEFT JOIN
cláusula cria uma linha falsa preenchido com NULL
. O diagrama de Venn a seguir ilustra o
LEFT JOIN
cláusula. Note-se que
LEFT OUTER JOIN
é o mesmo que LEFT JOIN
. SQLite LEFT JOIN
exemplos
Usaremos os
artists
e albums
tabelas 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 têm nenhum álbum usando o
LEFT JOIN
cláusula, selecionamos artistas e seus álbuns correspondentes. Se um artista não tiver nenhum álbum, o valor do AlbumId
coluna é NULL.
Para exibir os artistas que não têm nenhum álbum primeiro, temos duas opções:
- Primeiro, use
ORDER BY
cláusula para listar as linhas cujoAlbumId
éNULL
valores primeiro. - Segundo, use
WHERE
cláusula eIS NULL
operador para listar apenas artistas que não têm nenhum álbum.
A instrução a seguir usa o
LEFT JOIN
cláusula com o ORDER BY
cláusula. SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Tente
A instrução a seguir usa o
LEFT JOIN
cláusula com o WHERE
cláusula. SELECT
artists.ArtistId
, AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
WHERE
AlbumId IS NULL;
Code language: SQL (Structured Query Language) (sql)
Tente
Neste tutorial, você aprendeu como usar SQLite
LEFT JOIN
cláusula para consultar dados de várias tabelas.