Articles

SQL Server Correlated Subquery

Zusammenfassung: In diesem Tutorial erfahren Sie mehr über die SQL Server correlated subquery, eine Unterabfrage, deren Werte von der äußeren Abfrage abhängen.

Eine korrelierte Unterabfrage ist eine Unterabfrage, die die Werte der äußeren Abfrage verwendet. Mit anderen Worten, es hängt von der äußeren Abfrage für seine Werte ab. Aufgrund dieser Abhängigkeit kann eine korrelierte Unterabfrage nicht unabhängig als einfache Unterabfrage ausgeführt werden.

Darüber hinaus wird eine korrelierte Unterabfrage wiederholt ausgeführt, einmal für jede Zeile, die von der äußeren Abfrage ausgewertet wird. Die korrelierte Unterabfrage wird auch als wiederholte Unterabfrage bezeichnet.

Betrachten Sie die folgende products Tabelle aus der Beispieldatenbank:

Produkte

Im folgenden Beispiel werden die Produkte gefunden, deren Listenpreis dem höchsten Listenpreis der produkte innerhalb derselben Kategorie:

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;
Code language: SQL (Structured Query Language) (sql)

Hier ist das Ergebnis:

SQL Server-korrelierte Unterabfrage

In diesem Beispiel ermittelt die Unterabfrage für jedes Produkt, das von der äußeren Abfrage ausgewertet wird, den höchsten Preis aller Produkte in ihrer Kategorie. Wenn der Preis des aktuellen Produkts dem höchsten Preis aller Produkte in seiner Kategorie entspricht, wird das Produkt in die Ergebnismenge aufgenommen. Dieser Prozess wird für das nächste Produkt fortgesetzt und so weiter.

Wie Sie sehen können, wird die korrelierte Unterabfrage einmal für jedes Produkt ausgeführt, das von der äußeren Abfrage ausgewertet wird.

In diesem Tutorial erfahren Sie mehr über die korrelierte SQL Server-Unterabfrage.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.