เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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
แก้ไขและรันโค้ด