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

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » データの問い合わせと修正 » ジョイン:複数テーブルからのデータ検索 » ジョイン操作

 

ジョイン条件

「ジョイン条件」を使用するとテーブルをジョインできます。ジョイン条件とは、簡単に言えば探索条件のことです。ジョイン条件は、カラム内の値と値の関係に基づいて、ジョインしたテーブルからローのサブセットを選択します。たとえば、次のクエリでは 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 と組み合わされます。