SQL Server Correlated Subquery
Podsumowanie: w tym samouczku dowiesz się o SQL Server correlated subquery, który jest subquery, który zależy od zewnętrznego zapytania dla jego wartości.
subquery skorelowane jest subquery, który używa wartości zapytania zewnętrznego. Innymi słowy, zależy to od zewnętrznego zapytania o jego wartości. Z powodu tej zależności skorelowane podzapytanie nie może być wykonywane niezależnie jako proste podzapytanie.
ponadto skorelowane podzapytanie jest wykonywane wielokrotnie, raz dla każdego wiersza ocenianego przez zapytanie zewnętrzne. Skorelowane podzapytanie jest również znane jako powtarzające się podzapytanie.
rozważ następującą tabelę products
z przykładowej bazy danych:
poniższy przykład znajduje produkty, których cena katalogowa wynosi równa najwyższej cenie katalogowej produktów w tej samej kategorii:
Code language: SQL (Structured Query Language) (sql)SELECT product_name, list_price, category_idFROM production.products p1WHERE list_price IN ( SELECT MAX (p2.list_price) FROM production.products p2 WHERE p2.category_id = p1.category_id GROUP BY p2.category_id )ORDER BY category_id, product_name;
oto wynik:
w tym przykładzie dla każdego produktu ocenianego przez zapytanie zewnętrzne podquery znajduje najwyższą cenę ze wszystkich produktów w swojej kategorii. Jeśli cena bieżącego produktu jest równa najwyższej cenie wszystkich produktów w swojej kategorii, produkt jest uwzględniany w zestawie wyników. Proces ten jest kontynuowany dla następnego produktu i tak dalej.
jak widać, skorelowane podzapytanie jest wykonywane raz dla każdego produktu ocenianego przez zapytanie zewnętrzne.
w tym samouczku nauczyłeś się o skorelowanym podquery serwera SQL.