SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite Left Join


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:
  1. Linhas na tabela A (tabela esquerda) que têm linhas correspondentes na tabela B.
  2. 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 cujo AlbumId é NULL valores primeiro.
  • Segundo, use WHERE cláusula e IS 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.