Join multipli

Unire i dati in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Join su join

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;

Nota. A seconda del caso d’uso, si può usare left_table o right_table nella clausola ON.

Unire i dati in SQL

Join su join

La tabella prime_minister_terms dal nostro database di leader mondiali

La tabella prime_minister_terms, con due colonne: il nome del primo ministro e l’anno di insediamento.

Unire i dati in SQL

Cosa unire per primo?

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    |
Unire i dati in SQL

Concatenare i join

Un diagramma che mostra il result set della merge della slide precedente (presidents e prime_ministers) con una nuova tabella, prime_minister_terms. Il risultato ha cinque colonne: country, continent, president, prime_minister e pm_start.

Unire i dati in SQL

Concatenare i join

-- 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);
Unire i dati in SQL

Su cosa facciamo JOIN?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagramma di un INNER JOIN su id

Un diagramma che mostra che, facendo il match su una colonna, il campo di join della tabella di sinistra può trovare più corrispondenze in quella di destra. Il result set ha più record per ogni id della destra che ha fatto match con la sinistra.

Unire i dati in SQL

Join su più chiavi

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Diagramma di un INNER JOIN su id E date

Un diagramma che mostra che il numero di record nel result set può ridursi usando più campi di join. Qui si usano sia id che date per unire le due tabelle.

Unire i dati in SQL

Passiamo alla pratica !

Unire i dati in SQL

Preparing Video For Download...