Sous-requête vs INNER JOIN
Les résultats d’une sous-requête corrélée peuvent souvent être reproduits avec un INNER JOIN. Selon vos besoins, un INNER JOIN peut être plus efficace, car il ne parcourt les données qu’une seule fois, alors qu’une sous-requête corrélée s’exécute pour chaque ligne de la requête externe.
Vous souhaitez trouver, pour chaque pays du monde, la population 2017 de sa plus grande ville. Vous pouvez obtenir ces informations dans la base Earthquakes, en utilisant la table Nations comme requête externe et la table Cities dans la sous-requête.
Vous allez d’abord créer cette requête sous forme de sous-requête corrélée, puis la réécrire avec un INNER JOIN.
Cet exercice fait partie du cours
Améliorer les performances des requêtes dans SQL Server
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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