SQL Server korrelerade Subquery
sammanfattning: i denna handledning kommer du att lära dig om SQL Server korrelerade subquery som är en subquery som beror på den yttre frågan för dess värden.
en korrelerad underfråga är en underfråga som använder värdena för den yttre frågan. Med andra ord beror det på den yttre frågan för dess värden. På grund av detta beroende kan en korrelerad underfråga inte utföras oberoende som en enkel underfråga.
dessutom utförs en korrelerad underfråga upprepade gånger, en gång för varje rad utvärderad av den yttre frågan. Den korrelerade subquery är också känd som en upprepande subquery.
Tänk på följande products
tabell från provdatabasen:
följande exempel hittar de produkter vars Listpris är lika med det högsta listpriset för produkterna inom samma kategori:
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;
här är resultatet:
i det här exemplet hittar underquery det högsta priset för alla produkter i sin kategori för varje produkt som utvärderas av den yttre frågan. Om priset på den aktuella produkten är lika med det högsta priset på alla produkter i sin kategori ingår produkten i resultatuppsättningen. Denna process fortsätter för nästa produkt och så vidare.
som du kan se exekveras den korrelerade underfrågan en gång för varje produkt som utvärderas av den yttre frågan.
i den här handledningen har du lärt dig om SQL Server-korrelerade underfrågor.