Junções múltiplas

Junção de dados no SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Junções de junções

SELECT *
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id

INNER JOIN another_table ON left_table.id = another_table.id;

Observação: Dependendo do caso de uso, left_table ou right_table pode ser usado na cláusula ON.

Junção de dados no SQL

Junções de junções

Tabela prime_minister_terms de nosso banco de dados de líderes mundiais

Tabela prime_minister_terms mostrando duas colunas: o nome do primeiro-ministro e o ano em que assumiu o cargo.

Junção de dados no SQL

Que junção fazer primeiro?

SELECT p1.country, p1.continent, 
       president, prime_minister
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country);
| country  | continent     | president               | prime_minister   |
| -------- | ------------- | ----------------------- | ---------------- |
| Egypt    | Africa        | Abdel Fattah el-Sisi    | Mostafa Madbouly |
| Portugal | Europe        | Marcelo Rebelo de Sousa | Luís Montenegro  |
| Pakistan | Asia          | Asif Ali Zardari        | Shehbaz Sharif   |
| India    | Asia          | Droupadi Murmu          | Narendra Modi    |
Junção de dados no SQL

Encadeamento de junções

Diagrama que mostra o conjunto de resultados da mesclagem do slide anterior (presidentes e primeiros-ministros) com uma nova tabela, prime_minister_terms. O resultado consiste em cinco colunas: country, continent, president, prime_minister e pm_start

Junção de dados no SQL

Encadeamento de junções

-- SQL query for chaining inner joins
SELECT 
    p1.country, 
    p1.continent, 
    president, 
    prime_minister, 
    pm_start
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country)

INNER JOIN prime_minister_terms as p3 USING(prime_minister);
Junção de dados no SQL

ON: com base em que é feita a junção?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagrama de uma INNER JOIN com base (ON) no campo id

Diagrama que mostra que, ao fazer a correspondência com base em uma coluna, às vezes o campo de junção da tabela da esquerda encontra várias correspondências no campo de junção da tabela da direita. O conjunto de resultados tem vários registros para cada id na tabela da direita com correspondência na tabela da esquerda.

Junção de dados no SQL

Junção com base em várias chaves

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Diagrama de uma INNER JOIN com base (ON) no campo id e (AND) date

Diagrama mostrando que o número de registros retornados no conjunto de resultados pode ser reduzido se forem usados vários campos de junção. Aqui, tanto o id quanto a data são usados para combinar as duas tabelas.

Junção de dados no SQL

Vamos praticar!

Junção de dados no SQL

Preparing Video For Download...