รายละเอียดของ INNER JOIN

การ Join ข้อมูลใน SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

รายละเอียดของ INNER JOIN

ไดอะแกรมแสดงสองตาราง: ตารางซ้ายและตารางขวา ค่า id ที่ตรงกันในทั้งสองตารางแสดงด้วยสีเดียวกัน

การ Join ข้อมูลใน SQL

รายละเอียดของ INNER JOIN

  • INNER JOIN ค้นหาระเบียนในทั้งสองตารางที่มีค่าตรงกันในฟิลด์ที่กำหนด
ไดอะแกรมของ INNER JOIN บนฟิลด์ id

ไดอะแกรมแสดงสองตาราง: left_table และ right_table ค่า id ที่ตรงกันแสดงด้วยสีเดียวกันและเชื่อมกันด้วยลูกศร

การ Join ข้อมูลใน SQL

รายละเอียดของ INNER JOIN

ไดอะแกรมของ INNER JOIN ON ฟิลด์ id

ไดอะแกรมแสดงสองตาราง: left_table และ right_table ค่า id ที่ตรงกันแสดงด้วยสีเดียวกันและเชื่อมกันด้วยลูกศร ระเบียนที่ไม่เกี่ยวข้องกับ INNER JOIN ถูกทำให้จางลง

การ Join ข้อมูลใน SQL

รายละเอียดของ INNER JOIN

ไดอะแกรมของ INNER JOIN ON ฟิลด์ id

ไดอะแกรมแสดงสองตาราง: left_table และ right_table ผลลัพธ์ของการ join แสดงทางขวา โดยคืนเฉพาะระเบียนที่ค่าคอลัมน์ id ตรงกันในทั้งสองตาราง

การ Join ข้อมูลใน SQL

Schema ของฐานข้อมูล leadership

ผู้นำโลก (ถึงปี 2024): SQL schema แสดงสามตารางในฐานข้อมูล leadership ได้แก่ presidents, prime_ministers และ prime_minister_terms โดย presidents และ prime_ministers เชื่อมกันผ่านฟิลด์ country ส่วน prime_ministers และ prime_minister_terms เชื่อมกันผ่านฟิลด์ prime_minister

การ Join ข้อมูลใน SQL

มองดูตาราง 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          |
การ Join ข้อมูลใน SQL

รู้จักกับตาราง prime_ministers

ตาราง prime_ministers

ตาราง prime_ministers จากฐานข้อมูล leadership ประกอบด้วยสามคอลัมน์: country, continent และ prime_minister

การ Join ข้อมูลใน SQL

เชื่อม prime_ministers กับ presidents

ตาราง presidents

แสดงสองตารางเคียงกัน: presidents และ prime_ministers คอลัมน์ที่ตรงกันในสองตารางถูกระบายสีไว้

ตาราง prime_ministers

แสดงสองตารางเคียงกัน: presidents และ prime_ministers คอลัมน์ที่ตรงกันในสองตารางถูกระบายสีไว้

การ Join ข้อมูลใน SQL

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;

หมายเหตุ: ต้องใช้รูปแบบ table.column_name เมื่อเลือกคอลัมน์ที่มีอยู่ในทั้งสองตาราง เพื่อหลีกเลี่ยง SQL error

| 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         |
การ Join ข้อมูลใน SQL

การตั้งชื่อแทนตาราง (Aliasing)

--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         |

สามารถใช้ alias ในรูปแบบ table.column_name ได้ทั้งใน clause SELECT และ ON

การ Join ข้อมูลใน SQL

การใช้ 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         |
การ Join ข้อมูลใน SQL

มาฝึกกันเถอะ!

การ Join ข้อมูลใน SQL

Preparing Video For Download...