Sub-query so với INNER JOIN
Thường thì kết quả từ correlated sub-query có thể được tái tạo bằng INNER JOIN. Tùy yêu cầu, dùng INNER JOIN có thể hiệu quả hơn vì nó chỉ quét dữ liệu một lần, trong khi correlated sub-query phải thực thi cho từng dòng của truy vấn ngoài.
Bạn muốn tìm dân số năm 2017 của thành phố lớn nhất cho mỗi quốc gia trên thế giới. Bạn có thể lấy thông tin này từ cơ sở dữ liệu Earthquakes với bảng Nations là truy vấn ngoài và bảng Cities trong sub-query.
Bạn sẽ tạo truy vấn này dưới dạng correlated sub-query, sau đó viết lại bằng INNER JOIN.
Bài tập này là một phần của khóa học
Cải thiện hiệu năng truy vấn trong SQL Server
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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