Sub-query เทียบกับ INNER JOIN
บ่อยครั้งที่ผลลัพธ์จาก correlated sub-query สามารถทำได้ด้วย INNER JOIN เช่นกัน ขึ้นอยู่กับความต้องการ การใช้ INNER JOIN อาจมีประสิทธิภาพมากกว่า เพราะผ่านข้อมูลเพียงครั้งเดียว ในขณะที่ correlated sub-query จะต้องรันซ้ำสำหรับทุกแถวในคิวรีภายนอก
ในแบบฝึกหัดนี้ เราต้องการค้นหาจำนวนประชากรปี 2017 ของเมืองที่ใหญ่ที่สุดในแต่ละประเทศทั่วโลก โดยดึงข้อมูลจากฐานข้อมูล Earthquakes ซึ่งใช้ตาราง Nations เป็นคิวรีภายนอก และตาราง Cities ใน sub-query
ให้เริ่มต้นสร้างคิวรีนี้แบบ correlated sub-query จากนั้นเขียนใหม่โดยใช้ INNER JOIN
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
n.CountryName,
(SELECT MAX(c.___) -- Add 2017 population column
FROM Cities AS c
-- Outer query country code column
WHERE c.CountryCode = n.___) AS BiggestCity
FROM ___ AS n; -- Outer query table