Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfragen und Datenänderung » Verwendung von Unterabfragen

 

Verschachtelte Unterabfragen

Eine verschachtelte Unterabfrage ist eine Unterabfrage, die in einer anderen Unterabfrage verschachtelt ist. Es gibt keine Beschränkung für die Stufen von Unterabfragen-Verschachtelungen, die Sie festlegen können, aber Abfragen mit drei oder mehr Stufen brauchen für die Ausführung deutlich länger als kleinere Abfragen.

Das folgende Beispiel verwendet verschachtelte Unterabfragen, um die Bestellungs-IDs und Zeilen-IDs von jenen Bestellungen zu bestimmen, die am selben Tag versandt wurden, an dem ein bestimmter Artikel in der Abteilung "Fees" bestellt wurde.

SELECT ID, LineID
FROM SalesOrderItems
WHERE ShipDate = ANY (
   SELECT OrderDate
   FROM SalesOrders
   WHERE FinancialCode IN (
      SELECT Code
      FROM FinancialCodes
      WHERE ( Description = 'Fees' ) ) );
ID LineID
2001 1
2001 2
2001 3
2002 1
... ...

In diesem Beispiel erzeugt die innerste Unterabfrage eine Spalte mit Finanzcodes, deren Beschreibung "Fees" lautet.

SELECT Code
FROM FinancialCodes
WHERE ( Description = 'Fees' );

Die nächste Unterabfrage findet die Bestelldaten der Artikel, deren Code zu einem der in der innersten Unterabfrage ausgewählten Codes passen.

SELECT OrderDate
FROM SalesOrders
WHERE FinancialCode 
IN ( subquery-expression );

Schließlich findet die äußerste Abfrage die Bestellungs-IDs und Zeilen-IDs der Artikel, die an einem der Daten versandt wurde, die in der Unterabfrage gefunden wurden.

SELECT ID, LineID
FROM SalesOrderItems
WHERE ShipDate = ANY ( subquery-expression );