「ジョイン条件」を使用するとテーブルをジョインできます。ジョイン条件とは、簡単に言えば探索条件のことです。ジョイン条件は、カラム内の値と値の関係に基づいて、ジョインしたテーブルからローのサブセットを選択します。たとえば、次のクエリでは Products テーブルと SalesOrderItems テーブルからデータが取り出されます。
SELECT * FROM Products JOIN SalesOrderItems ON Products.ID = SalesOrderItems.ProductID; |
このクエリのジョイン条件は、次の部分です。
Products.ID = SalesOrderItems.ProductID |
このジョイン条件は、両方のテーブルのローに同じ製品 ID がある場合にかぎり、結果セットでこのローを結合できることを示しています。
ジョイン条件には明示的なものと、生成されたものがあります。「明示的ジョイン条件」とは、ON 句または WHERE 句の中に置かれたジョイン条件のことです。以下のクエリでは ON 句が使用されています。このクエリでは、2 つのテーブルの直積 (すべてのローの組み合わせ) が生成されます。ただし、ID 番号が一致しないローは除外されます。結果は、注文の詳細が記載された顧客リストになります。
SELECT * FROM Customers JOIN SalesOrders ON SalesOrders.CustomerID = Customers.ID; |
これに対し、「生成されたジョイン条件」とは、KEY JOIN または NATURAL JOIN を指定すると自動的に作成されるジョイン条件のことです。キージョインの場合、ジョイン条件はテーブル間の外部キー関係に基づいて生成されます。ナチュラルジョインの場合、ジョイン条件は名前が同じカラムに基づいて生成されます。
キージョイン構文とナチュラルジョイン構文は、どちらもショートカットです。つまり、KEY も NATURAL も指定しないで JOIN キーワードを使用してから、ON 句内で同じジョイン条件を明示的に記述しても、同じ結果が得られます。
キージョインまたはナチュラルジョインを指定した ON 句を使用すると、使用されるジョイン条件は、明示的に指定したジョイン条件と生成されたジョイン条件の「論理積」になります。つまり、ジョイン条件はキーワード AND と組み合わされます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |