Juntar três tabelas em SQL

Juntar Tres Tabelas Em Sql



Uma das principais características dos bancos de dados relacionais é a capacidade de separar os dados relacionados em vários componentes chamados “tabelas”. Ao contrário de outros bancos de dados, os bancos de dados relacionais exigem a coleta de dados de várias tabelas e a montagem dos resultados em dados significativos.

É aqui que a funcionalidade de junções entra em ação. Em bancos de dados relacionais, as junções são uma das operações mais comuns que permitem combinar os dados de duas ou mais tabelas em um único conjunto de resultados.







No entanto, você pode descobrir que a maioria das junções abrange apenas duas tabelas. No entanto, as junções podem se estender rapidamente para três ou mais tabelas. Embora possa ser mais eficiente examinar os CTEs ao trabalhar com mais de três tabelas, as junções podem ser muito eficientes e rápidas quando se trata de três tabelas.



Neste tutorial, veremos as etapas necessárias para realizar uma junção envolvendo três tabelas no SQL.



Começando

Antes de começar, assumimos que você tem três tabelas simples com as colunas conforme mostrado a seguir:





Tabela 1:
eu ia | nome | idade

Mesa 2:
eu ia | cidade | país

Tabela 3:
eu ia | salário | posição


Este layout nos permite entender rapidamente como funciona a junção de três tabelas e como podemos configurá-las usando uma consulta SQL.

Juntar três tabelas em SQL

Ao realizar qualquer junção no SQL, o componente principal começa identificando uma coluna comum ou um conjunto de colunas em cada uma das tabelas que você precisa unir. Você pode usar essas colunas compartilhadas para vincular a tabela, permitindo que o SQL interprete e mescle os dados de maneira sensata e eficiente.



Embora existam vários tipos de junções no SQL, o principal componente são as semelhanças nas tabelas.

Para este tutorial, vamos nos concentrar em uma junção interna que retorna apenas as linhas que correspondem aos valores nas três tabelas.

No caso das tabelas anteriores, podemos realizar um inner join nas três tabelas conforme demonstrado na consulta a seguir:

SELECT Mesa1.nome, Mesa2.cidade, Mesa3.salário
DA Tabela1
INNER JOIN Tabela2
ON Table1.id = Table2.id
INNER JOIN Tabela3
ON Table2.id = Table3.id;


Vamos explorar a consulta anterior passo a passo:

    1. A primeira é a instrução SELECT que nos permite selecionar as colunas que desejamos incluir no conjunto de resultados. Neste caso, estamos interessados ​​na coluna nome da Tabela 1, na coluna cidade da Tabela 2 e na coluna salário da Tabela 3.
    2. Usando a instrução FROM, especificamos as tabelas de destino das quais desejamos buscar as colunas definidas. Neste caso, estamos buscando na Tabela 1.
    3. Em seguida vem a cláusula INNER JOIN. Usamos esta cláusula para unir a Tabela 1 com a Tabela 2. Também usamos a cláusula ON para especificar a condição que liga as duas tabelas que, neste caso, é a coluna ID.
    4. O segundo INNER JOIN nos permite unir o conjunto de resultados da primeira junção com a Tabela 3. Usando a cláusula ON, dizemos ao SQL que desejamos unir o conjunto de resultados e a Tabela 3 com base na coluna ID.
    5. O conjunto de resultados de todas as três tabelas é incluído nas colunas selecionadas.

Exemplo Prático:

Embora o exemplo anterior demonstre como unir as três tabelas, vamos dar um exemplo mais prático e usar o banco de dados Sakila.

Juntamos as tabelas de filme, aluguel e inventário neste caso. A consulta é a seguinte:

SELECT rental.rental_id, rental.rental_date, film.title, inventario.inventory_id
DE aluguel
JUNTE-SE ao inventário ON rental.inventory_id = Inventory.inventory_id
JUNTE-SE ao filme em inventory.film_id = film.film_id
WHERE filme.título = 'SUNSET RACER' ;


Explicação:

    1. Nesse caso, usamos a instrução SELECT para selecionar as colunas rental_id, rental_date e inventory_id da tabela rental.
    2. A primeira cláusula JOIN vincula a tabela de aluguel à tabela de inventário usando a coluna Inventory_id.
    3. A segunda cláusula JOIN une o conjunto de resultados da primeira junção à tabela film usando a coluna film_id.
    4. Por fim, usamos a cláusula WHERE para filtrar o conjunto de resultados apenas para incluir o título de destino.

A tabela resultante é a seguinte:

Conclusão

A junção de três tabelas em SQL requer a identificação de uma coluna compartilhada ou um conjunto de colunas em cada tabela e o uso do tipo apropriado de junção (interna, esquerda, direita ou totalmente externa) para vincular as tabelas. Conforme mostrado neste tutorial, você deve entender como unir três tabelas no SQL.