Junção esquerda do SQLite

Resumo : neste tutorial, você aprenderá como usar LEFT JOINa cláusula SQLite para consultar dados de várias tabelas.

LEFT JOINIntrodução à cláusula SQLite

Semelhante à INNER JOINcláusula, a LEFT JOINcláusula é uma cláusula opcional da SELECTdeclaração. Você usa a LEFT JOINclá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 JOINa 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:

  1. Linhas na tabela A (tabela esquerda) que possuem linhas correspondentes na tabela B.
  2. Linhas na tabela A e as linhas na tabela B preenchidas com NULLvalores 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 WHEREcláusula na instrução, a cláusula search_conditionin WHEREé aplicada após a conclusão da correspondência da LEFT JOINcláusula.

Veja a ilustração a seguir da LEFT JOINcláusula entre as tabelas A e B.

Exemplo de junção esquerda do SQLite

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 JOINcláusula cria uma linha falsa preenchida com NULL.

O diagrama de Venn a seguir ilustra a LEFT JOINcláusula.

Diagrama de Venn de junção esquerda do SQLite

Note-se que LEFT OUTER JOINé o mesmo que LEFT JOIN.

LEFT JOINExemplos de SQLite

Usaremos as tabelas artistse albumsno 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 JOINcláusula, selecionamos os artistas e seus álbuns correspondentes. Se um artista não tiver nenhum álbum, o valor da AlbumIdcoluna seráNULL.

Para exibir primeiro os artistas que não possuem nenhum álbum, temos duas opções:

  • Primeiro, use ORDER BYa cláusula para listar as linhas cujos valores AlbumIdsão NULLprimeiro.
  • Segundo, use WHEREcláusula e IS NULLoperador para listar apenas artistas que não possuem nenhum álbum.

A instrução a seguir usa a LEFT JOINcláusula com a ORDER BYclá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 )

Tente

A instrução a seguir usa a LEFT JOINcláusula com a WHEREclá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 )

Tente

Neste tutorial, você aprendeu como usar LEFT JOINa cláusula SQLite para consultar dados de várias tabelas.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *