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 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » サブクエリの使用

 

ネストされたサブクエリ

「ネストされたサブクエリ」とは、別のサブクエリの中にネストされたサブクエリです。定義できるサブクエリのネストのレベルに制限はありませんが、3 つ以上のレベルのクエリは、それ以下のレベルのクエリに比べて、実行にかなりの時間がかかります。

次の例では、ネストされたサブクエリを使用して、Fees 部の任意の品目が注文された日に出荷された注文の注文 ID とライン ID を決定します。

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
... ...

この例では、最も内側のサブクエリが、"Fees" という説明がある経理コードのカラムを生成します。

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

次のサブクエリは、最も内側のサブクエリが選択したコードに一致するコードを持つ品目の注文日を検索します。

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

最後に、一番外側のクエリが、サブクエリの検索した日付のいずれかに出荷された注文の注文 ID とライン ID を検索します。

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