Devdit
 

LEFT JOIN กับ RIGHT JOIN ต่างกันอย่างไร

1K

LEFT JOIN กับ RIGHT JOIN ต่างกันที่ LEFT JOIN จะแสดงข้อมูลทั้งหมดจากตารางฝั่งซ้ายเป็นหลัก (ตารางแรกที่เขียน SQL) ส่วน RIGHT JOIN จะตรงกันข้ามคือแสดงข้อมูลทั้งหมดจากตารางฝั่งขวาแทน (ตารางสองที่เขียน SQL) มาดูตัวอย่างการเขียน LEFT JOIN และ RIGHT JOIN กันมีรายละเอียดดังนี้

 

ตัวอย่าง โครงสร้างตาราง orders และ order_details

1. ตาราง orders

idcreatedpaid_status
12024-01-29 08:03:17paid
22024-01-29 11:03:17paid
52024-01-30 14:03:17unpaid

2. ตาราง order_details

idproduct_idamountorder_id
1121
2321
3212

ทั้ง 2 ตารางเชื่อมกันผ่าน field id (primary key) ของตาราง orders กับ field order_id (foreign key) ของตาราง order_details วิเคราะห์จากข้อมูลจะเห็นว่าตาราง order_details ไม่มีข้อมูล order_id เท่ากับ 5 ซึ่งจุดนี้จะทำให้เห็นผลลัพธ์การใช้ LEFT JOIN และ RIGHT JOIN

 

ตัวอย่าง การเขียน LEFT JOIN

SELECT *
FROM
orders o
LEFT JOIN order_details od ON ( o.id = od.order_id )

ผลลัพธ์

idcreatedpaid_statusidproduct_idamountorder_id
12024-01-29 08:03:17paid2321
12024-01-29 08:03:17paid1121
22024-01-29 11:03:17paid3212
52024-01-30 14:03:17unpaidNULLNULLNULLNULL

กรณีนี้จะแสดงข้อมูลทั้งหมดจากตารางฝั่งซ้าย (คือตารางแรกที่ถูกเขียน SQL ก็คือ orders) ทำให้ข้อมูลจะแสดง id เลข 5 ด้วยแต่ข้อมูลจาก order_detail ในแถวดังกล่าวจะไม่มีข้อมูล เนื่องจากไม่มีข้อมูลที่สัมพันธ์กับตารางฝั่งซ้ายคือ orders

 

ตัวอย่าง การเขียน RIGHT JOIN

SELECT *
FROM
orders o
RIGHT JOIN order_details od ON ( o.id = od.order_id )

ผลลัพธ์

idcreatedpaid_statusidproduct_idamountorder_id
12024-01-29 08:03:17paid1121
12024-01-29 08:03:17paid2321
22024-01-29 11:03:17paid3212

กรณีนี้จะแสดงข้อมูลทั้งหมดจากตารางฝั่งขวา (คือตารางที่สองที่ถูกเขียน SQL ก็คือ order_details) ทำให้ข้อมูลจะแสดงเพียง 3 แถวเนื่องจาก order_id (foreign key) ไม่มีข้อมูลเลข 5 ที่อยู่ในตาราง orders field id (primary key)

 

สรุป บทความนี้เราได้เรียนรู้การใช้ LEFT JOIN และ RIGHT JOIN โดย LEFT จะแสดงข้อมูลทั้งหมดจากตารางฝั่งซ้ายที่ถูกจอย ส่วน RIGHT JOIN จะแสดงข้อมูลทั้งหมดจากตารางฝั่งขวาที่ถูกจอย

แก้ไข 9 เดือนที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ