LEFT JOIN และ RIGHT JOIN

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

Maham Faisal Khan

Senior Content Developer, Data Science

ไดอะแกรม INNER JOIN

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

ไดอะแกรมที่แสดงซ้ำจากบทเรียนก่อนหน้า แสดงตารางสองตาราง คือ left_table และ right_table พร้อมผลลัพธ์หลังจาก inner join โดยเรกคอร์ดที่ไม่เกี่ยวข้องกับ inner join จะถูกทำให้จางลง

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

ไดอะแกรม LEFT JOIN เบื้องต้น

  • LEFT JOIN จะคืนค่าเรกคอร์ดทั้งหมดในตารางซ้าย และเรกคอร์ดในตารางขวาที่ตรงกันในฟิลด์ที่ใช้เชื่อมตาราง
    ไดอะแกรมของ LEFT JOIN ON ฟิลด์ id

ไดอะแกรมแสดงตารางสองตาราง คือ left table และ right table โดยมีลูกศรชี้ไปยังเรกคอร์ดที่ตรงกันในคอลัมน์ id ของทั้งสองตาราง เรกคอร์ดที่ไม่เกี่ยวข้องกับ left join จะถูกทำให้จางลง

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

ไดอะแกรม LEFT JOIN

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

ไดอะแกรมแสดงตารางสองตาราง คือ left table และ right table พร้อมผลลัพธ์หลังจาก left join โดยเรกคอร์ดที่ไม่เกี่ยวข้องกับ left join จะถูกทำให้จางลง

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

ไวยากรณ์ LEFT JOIN

SELECT p1.country, prime_minister, president
FROM prime_ministers AS p1
LEFT JOIN presidents AS p2
USING(country);

หมายเหตุ: LEFT JOIN สามารถเขียนเป็น LEFT OUTER JOIN ได้เช่นกัน

| country        | prime_minister    | president               |
|----------------|-------------------|-------------------------|
| Egypt          | Mostafa Madbouly  | Abdel Fattah el-Sisi    |
| Portugal       | Luís Montenegro   | Marcelo Rebelo de Sousa |
| Pakistan       | Shehbaz Sharif    | Asif Ali Zardari        |
| United Kingdom | Keir Starmer      | null                    | 
| India          | Narendra Modi     | Droupadi Murmu          |
| Australia      | Anthony Albanese  | null                    | 
...
การ Join ข้อมูลใน SQL

RIGHT JOIN

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

ไดอะแกรมแสดงตารางสองตาราง คือ left table และ right table พร้อมผลลัพธ์หลังจาก right join โดยเรกคอร์ดที่ไม่เกี่ยวข้องกับ right join จะถูกทำให้จางลง

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

ไวยากรณ์ RIGHT JOIN

SELECT *
FROM left_table
RIGHT JOIN right_table
ON left_table.id = right_table.id;

หมายเหตุ: RIGHT JOIN สามารถเขียนเป็น RIGHT OUTER JOIN ได้เช่นกัน

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

RIGHT JOIN กับข้อมูลประธานาธิบดีและนายกรัฐมนตรี

SELECT p1.country, prime_minister, president
FROM prime_ministers AS p1
RIGHT JOIN presidents AS p2
USING(country);
| country        | prime_minister   | president               |
|----------------|------------------|-------------------------|
| Egypt          | Mostafa Madbouly | Abdel Fattah el-Sisi    |
| Portugal       | Luís Montenegro  | Marcelo Rebelo de Sousa |
| USA            | null             | Joe Biden               |
| Uruguay        | null             | Luis Lacalle Pou        |     
| Pakistan       | Shehbaz Sharif   | Asif Ali Zardari        |
| Chile          | null             | Gabriel Boric           |      
| India          | Narendra Modi    | Droupadi Murmu          |      
การ Join ข้อมูลใน SQL

ควรใช้ LEFT JOIN หรือ RIGHT JOIN?

  • RIGHT JOIN ถูกใช้งานน้อยกว่า LEFT JOIN
  • RIGHT JOIN ทุกรูปแบบสามารถเขียนใหม่เป็น LEFT JOIN ได้
  • LEFT JOIN อ่านได้เป็นธรรมชาติกว่าสำหรับผู้ใช้ที่พิมพ์จากซ้ายไปขวา
การ Join ข้อมูลใน SQL

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

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

Preparing Video For Download...