在 SQL 中進行資料連接
Maham Faisal Khan
Senior Content Developer, DataCamp

INNER JOIN 會在兩個資料表中,找出在指定欄位上相符的紀錄。id 欄位進行 INNER JOIN 的示意圖
id 欄位進行 INNER JOIN 的示意圖
id 欄位進行 INNER JOIN 的示意圖
截至 2024 年的世界領袖:

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;
注意。 當兩個資料表都含有同名欄位時,選取欄位需使用 table.column_name 格式,才能避免 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 |
在 SELECT 與 ON 子句的 table.column_name 語法中,你也可以使用別名。
--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 |
在 SQL 中進行資料連接