Dentro e fuori dagli INNER JOIN

Unire i dati in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Dentro e fuori dagli INNER JOIN

Uno schema con due tabelle: tabella sinistra e destra. Gli id corrispondenti nelle due tabelle hanno gli stessi colori.

Unire i dati in SQL

Dentro e fuori dagli INNER JOIN

  • INNER JOIN cerca record in entrambe le tabelle che coincidono su un campo dato
Diagramma di un INNER JOIN sul campo id

Uno schema con due tabelle: left_table e right_table. Gli id corrispondenti nelle due tabelle hanno gli stessi colori e sono collegati da frecce.

Unire i dati in SQL

Dentro e fuori dagli INNER JOIN

Diagramma di un INNER JOIN con ON sul campo id

Uno schema con due tabelle: left_table e right_table. I record fuori dall'interesse di INNER JOIN sono attenuati.

Unire i dati in SQL

Dentro e fuori dagli INNER JOIN

Diagramma di un INNER JOIN con ON sul campo id

Uno schema con due tabelle: left_table e right_table. Il risultato del join è mostrato a destra: restituisce solo i record che corrispondono sulla colonna id in entrambe le tabelle.

Unire i dati in SQL

Schema del database leadership

Leader mondiali fino al 2024: Uno schema SQL con tre tabelle nel database leadership: presidents, prime_ministers e prime_minister_terms. presidents e prime_minister si possono unire sul campo country, mentre prime_ministers e prime_minister_terms sul campo prime_minister.

Unire i dati in SQL

Alla tabella presidents

SELECT * 
FROM presidents;
| country  | continent     | president               |
|----------|---------------|-------------------------|
| Egypt    | Africa        | Abdel Fattah el-Sisi    |
| Portugal | Europe        | Marcelo Rebelo de Sousa | 
| USA      | North America | Joe Biden               |
| Uruguay  | South America | Luis Lacalle Pou        |
| Pakistan | Asia          | Asif Ali Zardari        |
| Chile    | South America | Gabriel Boric           |
| India    | Asia          | Droupadi Murmu          |
Unire i dati in SQL

Conosci i primi ministri

La tabella prime_ministers

La tabella prime_ministers dal database leadership, con tre colonne: country, continent e prime_minister.

Unire i dati in SQL

Primi ministri, incontrate i presidenti

La tabella presidents

Due tabelle affiancate: presidents e prime_minister. Le colonne corrispondenti sono evidenziate in entrambe.

La tabella prime_ministers

Due tabelle affiancate: presidents e prime_minister. Le colonne corrispondenti sono evidenziate in entrambe.

Unire i dati in SQL

Il nostro primo INNER JOIN

--Inner join of presidents and prime_ministers, joining on country

SELECT prime_ministers.country, prime_ministers.continent, prime_minister, president
FROM presidents
INNER JOIN prime_ministers
ON presidents.country = prime_ministers.country;

Nota. Il formato table.column_name va usato quando selezioni colonne presenti in entrambe le tabelle, per evitare un errore SQL.

| country        | continent | prime_minister   | president               |
|----------------|-----------|------------------|-------------------------|
| Egypt          | Africa    | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Europe    | Luís Montenegro  | Marcelo Rebelo de Sousa |
| Pakistan       | Asia      | Shehbaz Sharif   | Asif Ali Zardari        |
| India          | Asia      | Narendra Modi    | Ram Nath Kovind         |
Unire i dati in SQL

Alias delle tabelle

--Inner join of presidents and prime_ministers, joining on country

SELECT p2.country, p2.continent, prime_minister, president
FROM presidents AS p1 INNER JOIN prime_ministers AS p2
ON p1.country = p2.country;
| country        | continent | prime_minister   | president               |
|----------------|-----------|------------------|-------------------------|
| Egypt          | Africa    | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Europe    | Luís Montenegro  | Marcelo Rebelo de Sousa |
| Pakistan       | Asia      | Shehbaz Sharif   | Asif Ali Zardari        |
| India          | Asia      | Narendra Modi    | Ram Nath Kovind         |

Si possono usare alias nella sintassi table.column_name nelle clausole SELECT e ON.

Unire i dati in SQL

Usare USING

--Inner join of presidents and prime_ministers, joining on country
SELECT p2.country, p2.continent, prime_minister, president
FROM presidents AS p1
INNER JOIN prime_ministers AS p2
USING(country);
| country        | continent | prime_minister   | president               |
|----------------|-----------|------------------|-------------------------|
| Egypt          | Africa    | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Europe    | Luís Montenegro  | Marcelo Rebelo de Sousa |
| Pakistan       | Asia      | Shehbaz Sharif   | Asif Ali Zardari        |
| India          | Asia      | Narendra Modi    | Ram Nath Kovind         |
Unire i dati in SQL

Passiamo alla pratica !

Unire i dati in SQL

Preparing Video For Download...