Joinuri multiple

Joining Data in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Joinuri înlănțuite

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;

Notă. În funcție de caz, left_table sau right_table pot fi utilizate în clauza ON.

Joining Data in SQL

Joinuri înlănțuite

Tabelul prime_minister_terms din baza noastră de date cu lideri mondiali

Tabelul prime_minister_terms, cu două coloane: numele primului-ministru și anul preluării mandatului.

Joining Data in SQL

Ce să unim primul?

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    |
Joining Data in SQL

Înlănțuirea joinurilor

O diagramă care arată setul de rezultate al îmbinării din slide-ul anterior (presidents și prime_ministers) cu un nou tabel, prime_minister_terms. Rezultatul conține cinci coloane: country, continent, president, prime_minister și pm_start.

Joining Data in SQL

Înlănțuirea joinurilor

-- 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);
Joining Data in SQL

Pe ce facem join?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagramă pentru un INNER JOIN ON câmpul id

O diagramă care arată că, la potrivirea pe o singură coloană, câmpul de join din tabelul stâng poate găsi mai multe potriviri în câmpul de join din tabelul drept. Setul de rezultate conține mai multe înregistrări pentru fiecare id din tabelul drept care s-a potrivit cu tabelul stâng.

Joining Data in SQL

Join pe mai multe chei

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Diagramă pentru un INNER JOIN ON câmpurile id ȘI date

O diagramă care arată că numărul de înregistrări returnate poate fi redus dacă se folosesc mai multe câmpuri de join. Aici, atât id, cât și date sunt utilizate pentru a uni cele două tabele.

Joining Data in SQL

Să exersăm!

Joining Data in SQL

Preparing Video For Download...