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

SQL Anywhere 11.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 サイズ 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 であるため)。

外部ジョインの計算方法については、外部ジョインを参照してください。