Junção interna SQLite

Resumo : este tutorial mostra como usar a cláusula de junção interna SQLite para consultar dados de várias tabelas.

Introdução à cláusula de junção interna SQLite

Em bancos de dados relacionais, os dados geralmente são distribuídos em muitas tabelas relacionadas. Uma tabela é associada a outra tabela usando chaves estrangeiras .

Para consultar dados de várias tabelas, você usa INNER JOINa cláusula. A INNER JOINcláusula combina colunas de tabelas correlacionadas.

Suponha que você tenha duas tabelas: A e B.

A tem colunas a1, a2 e f. B tem colunas b1, b2 e f. A tabela A vincula-se à tabela B usando uma coluna de chave estrangeira chamada f.

O seguinte ilustra a sintaxe da cláusula inner join:

SELECT a1, a2, b1, b2
FROM A
INNER JOIN B on B.f = A.f;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para cada linha da tabela A, a INNER JOINcláusula compara o valor da coluna f com o valor da coluna f da tabela B. Se o valor da coluna f na tabela A for igual ao valor da coluna f na tabela B, ele combina dados das colunas a1, a2, b1, b2 e inclui esta linha no conjunto de resultados.

Em outras palavras, a INNER JOINcláusula retorna linhas da tabela A que possuem a linha correspondente na tabela B.

Esta lógica é aplicada se você unir mais de 2 tabelas.

Veja o exemplo a seguir.

Exemplo de junção interna SQLite

Somente as linhas da tabela A: (a1,1), (a3,3) possuem as linhas correspondentes na tabela B (b1,1), (b2,3) são incluídas no conjunto de resultados.

O diagrama a seguir ilustra a INNER JOINcláusula:

Diagrama de Venn de junção interna SQLite

INNER JOINExemplos de SQLite

Vamos dar uma olhada nas tabelas trackse albumsno banco de dados de exemplo . A trackstabela é vinculada à albumstabela por meio de AlbumIdcoluna.

Na trackstabela, a AlbumIdcoluna é uma chave estrangeira. E na albumstabela, the AlbumIdé a chave primária .

Para consultar dados de tabelas trackse albums, você usa a seguinte instrução:

SELECT
	trackid,
	name,
	title
FROM
	tracks
INNER JOIN albums ON albums.albumid = tracks.albumid;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo de junção interna SQLite de 2 tabelas

Para cada linha da tabela de trilhas, o SQLite usa o valor da albumidcoluna da trackstabela para comparar com o valor albumidda albumstabela. Se o SQLite encontrar uma correspondência, ele combinará os dados das linhas em ambas as tabelas no conjunto de resultados.

Você pode incluir as AlbumIdcolunas de ambas as tabelas no conjunto de resultados finais para ver o efeito.

SELECT
    trackid,
    name,
    tracks.albumid AS album_id_tracks,
    albums.albumid AS album_id_albums,
    title
FROM
    tracks
    INNER JOIN albums ON albums.albumid = tracks.albumid;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo de junção interna SQLite

Junção interna SQLite – exemplo de 3 tabelas

Veja as tabelas a seguir: tracks albumseartists

Uma faixa pertence a um álbum e um álbum contém muitas faixas. A trackstabela associada à albumstabela por meio de albumidcoluna.

Um álbum pertence a um artista e um artista possui um ou mais álbuns. A albumstabela é vinculada à artiststabela por meio de artistidcoluna.

Para consultar dados dessas tabelas, você precisa usar duas cláusulas de junção interna na SELECTinstrução da seguinte maneira:

SELECT
    trackid,
    tracks.name AS track,
    albums.title AS album,
    artists.name AS artist
FROM
    tracks
    INNER JOIN albums ON albums.albumid = tracks.albumid
    INNER JOIN artists ON artists.artistid = albums.artistid;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite Inner Join 3 tabelas

Você pode usar uma cláusula WHERE para obter as faixas e álbuns do artista com id 10 conforme a seguinte instrução:

SELECT
	trackid,
	tracks.name AS Track,
	albums.title AS Album,
	artists.name AS Artist
FROM
	tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
INNER JOIN artists ON artists.artistid = albums.artistid
WHERE
	artists.artistid = 10;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite INNER JOIN com cláusula WHERE

Neste tutorial, você aprendeu como usar INNER 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 *