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 の使用法 » データの問い合わせと修正 » ジョイン:複数テーブルからのデータ検索 » ジョイン操作

 

2 つのテーブル間のジョイン

簡単な内部ジョインの計算方法を理解するために、次のクエリを例にして考えてみましょう。これは、「在庫数と同数の受注数があったのはどの製品のサイズか」という質問への回答です。

SELECT DISTINCT Name, Size,
    SalesOrderItems.Quantity
FROM Products JOIN SalesOrderItems
ON Products.ID = SalesOrderItems.ProductID
  AND Products.Quantity = SalesOrderItems.Quantity;
Name Size Quantity
Baseball Cap One size fits all 12
Visor One size fits all 36

このクエリは次のように解釈できます。次に示すのはこのクエリの処理概念の説明であり、ジョインを含むクエリのセマンティックを例証するためのものです。ここで述べる内容は、SQL Anywhere が実際に結果セットを計算する過程を示すものではありません。

  • Products テーブルと SalesOrderItems テーブルの直積を作成します。直積には 2 つのテーブルのローの組み合わせがすべて含まれます。

  • 製品 ID が同じではないローはすべて除外されます (ジョイン条件が Products.ID = SalesOrderItems.ProductID であるため)。

  • 数量が同じでないローはすべて除外されます (ジョイン条件が Products.Quantity = SalesOrderItems.Quantity であるため)。

  • Products.Name、Products.Size、SalesOrderItems.Quantity の 3 つのカラムを持つ結果テーブルが作成されます。

  • 重複するローがすべて除外されます (キーワードが DISTINCT であるため)。

 参照