Poddotaz vs INNER JOIN
Výsledky korelovaného poddotazu lze často nahradit pomocí INNER JOIN. Podle situace může být INNER JOIN efektivnější, protože data prochází jen jednou, zatímco korelovaný poddotaz se musí spustit pro každý řádek vnějšího dotazu.
Chceme zjistit populaci největšího města každé země světa v roce 2017. Tuto informaci získáš z databáze Earthquakes – tabulka Nations bude sloužit jako vnější dotaz a tabulka Cities jako poddotaz.
Nejprve tento dotaz sestavíš jako korelovaný poddotaz a pak ho přepíšeš s použitím INNER JOIN.
Toto cvičení je součástí kurzu
Improving Query Performance in SQL Server
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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