Łączenie danych w SQL
Maham Faisal Khan
Senior Content Developer, DataCamp

INNER JOIN wyszukuje rekordy obecne w obu tabelach, które pasują do siebie w danym poluINNER JOIN na polu id
INNER JOIN ON pole id
INNER JOIN ON pole id
Przywódcy światowi do 2024 r.:

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 |
prime_ministers
presidents
prime_ministers
--Inner join of presidents and prime_ministers, joining on countrySELECT prime_ministers.country, prime_ministers.continent, prime_minister, presidentFROM presidentsINNER JOIN prime_ministersON presidents.country = prime_ministers.country;
Uwaga. Format table.column_name jest wymagany przy wyborze kolumn występujących w obu tabelach, aby uniknąć błędu 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 |
--Inner join of presidents and prime_ministers, joining on countrySELECT p2.country, p2.continent, prime_minister, presidentFROM presidents AS p1 INNER JOIN prime_ministers AS p2ON 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 |
Aliasy można stosować w składni table.column_name w klauzulach SELECT i ON.
--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 |
Łączenie danych w SQL