この句は、SELECT 文に必要なテーブルまたはビューを指定するために使用します。
FROM table-expression, ...
table-expression : table-name [ [ AS ] correlation-name ] | ( select-list ) [ AS ] derived-table-name ( column-name, ... ) | ( table-expression ) | table-expression join-operator table-expression [ ON search-condition ] ...
join-operator : , | INNER JOIN | CROSS JOIN | LEFT OUTER JOIN | JOIN
table-name ベース・テーブルまたはテンポラリ・テーブル。Ultra Light では、異なるユーザがテーブルを所有できません。ユーザ ID でテーブルを修飾した場合、ID は無視されます。
correlation-name 文の他の部分からテーブルを参照するときに使用する識別子。たとえば、次の文で、a は Contacts テーブルの相関名、b は Customers テーブルの相関名として定義されています。
SELECT * FROM Contacts a, Customers b WHERE a.CustomerID=b.ID; |
derived-table-name 派生テーブルは、FROM 句でネストされている SELECT 文です。
派生テーブルの Select リストの項目は、派生テーブル名 (オプション) に続いてピリオド (.) とカラム名を指定して参照します。カラム名があいまいではない場合は、カラム名だけを使用できます。
SELECT 文内から派生テーブルを参照することはできません。式のサブクエリを参照してください。
join-operator ジョインのタイプを指定します。カンマ (,) または CROSS JOIN を指定した場合は、ON サブ句を指定できません。JOIN を指定した場合は、ON サブ句を指定する必要があります。INNER JOIN と LEFT OUTER JOIN の場合は、ON サブ句はオプションです。
FROM 句を指定しない場合、SELECT 文の式は定数式である必要があります。
この説明はテーブルについてのものですが、特に注意書きがなければ派生テーブルにも適用します。
FROM 句は、指定した全テーブルのすべてのカラムで構成される結果セットを作成します。最初に、指定したテーブルのすべてのローの組み合わせが結果セットの中に入ります。次に、JOIN 条件か WHERE 条件、またはその両方の分だけ、通常は組み合わせの数が減ります。
ジョインのタイプを指定しないで、カンマ区切りリストとしてテーブルをリストする場合、デフォルトでは CROSS JOIN が使用されます。
INNER ジョインの場合、ON 句または WHERE 句を使用してジョインの結果を制限すると、同じ結果が返されます。OUTER ジョインの場合、これらは同じではありません。
Ultra Light では、KEY JOIN と NATURAL JOIN の各ジョインはサポートされていません。
次は、有効な FROM 句です。
... FROM Employees ... |
... FROM Customers CROSS JOIN SalesOrders CROSS JOIN SalesOrderItems CROSS JOIN Products ... |
次のクエリは、派生テーブルを使用して、SalesOrders テーブルに 4 件以上の注文がある Customers テーブルの顧客名を返します。
SELECT Surname, GivenName, number_of_orders FROM Customers JOIN ( SELECT CustomerID, COUNT(*) FROM SalesOrders GROUP BY CustomerID ) AS sales_order_counts( CustomerID, number_of_orders ) ON ( Customers.id = sales_order_counts.CustomerID ) WHERE number_of_orders > 3; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |