การวินิจฉัยปัญหาด้วย anti join
ทำได้ดีมากกับ semi join! Anti join เป็นเครื่องมือการ join ที่เกี่ยวข้องกันและมีประสิทธิภาพสูง โดยเฉพาะอย่างยิ่งสำหรับการตรวจสอบว่ามีจำนวนระเบียนที่ไม่ถูกต้องปรากฏในผลลัพธ์ของ join หรือไม่
สมมติว่าต้องการระบุสกุลเงินของประเทศในโอเชียเนีย คุณได้เขียน INNER JOIN ต่อไปนี้ซึ่งคืนค่า 15 ระเบียน และต้องการตรวจสอบว่าประเทศในโอเชียเนียทุกประเทศจากตาราง countries ถูกรวมอยู่ในผลลัพธ์นี้หรือไม่ โดยจะทำในขั้นตอนแรก
SELECT c1.code, name, basic_unit AS currency
FROM countries AS c1
INNER JOIN currencies AS c2
ON c1.code = c2.code
WHERE c1.continent = 'Oceania';
หากมีประเทศในโอเชียเนียบางประเทศที่ถูกตัดออกจาก INNER JOIN นี้ ให้แสดงชื่อประเทศเหล่านั้น ซึ่งจะเขียน anti join เพื่อทำสิ่งนี้ในขั้นตอนที่สอง!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การ Join ข้อมูลใน SQL
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Select code and name of countries from Oceania