一般的なジョインの多くは 2 つのテーブル間で外部キーによって関連付けられます。最も一般的なジョインは、外部キー値がプライマリ・キー値と同じになるように制限します。KEY JOIN 演算子は、外部キーの関係に基づいて 2 つのテーブルをジョインします。つまり、SQL Anywhere は、一方のテーブルのプライマリ・キー・カラムを他方のテーブルの外部キー・カラムと同等とする ON 句を生成します。キー・ジョインを使用するには、テーブル間に外部キー関係が必要になります。この関係がない場合は、エラーになります。
キー・ジョインは ON 句のショートカットで、この 2 つのクエリは同じです。ただし、ON 句は KEY JOIN でも使用できます。JOIN を指定しても CROSS、NATURAL、KEY を指定しない場合、または ON 句を使用する場合のデフォルトは、キー・ジョインです。SQL Anywhere サンプル・データベースの図では、テーブル間を結ぶ線は外部キーを表します。KEY JOIN 演算子は、図の中で 1 本の線によって 2 つのテーブルがジョインされているところならどこでも使用できます。SQL Anywhere サンプル・データベースの詳細については、チュートリアル:サンプル・データベースの使用を参照してください。
次のすべてが当てはまる場合、SQL Anywhere ではキー・ジョインがデフォルトになります。
キーワード JOIN が使用されている。
キーワード CROSS、NATURAL、または KEY が指定されていない。
ON 句がない。
たとえば、次のクエリは、データベース内の外部キー関係に基づいてテーブル Products と SalesOrderItems をジョインします。
SELECT * FROM Products KEY JOIN SalesOrderItems; |
次のクエリは同義です。これには KEY がありませんが、ON 句のない JOIN はデフォルトで KEY JOIN になります。
SELECT * FROM Products JOIN SalesOrderItems; |
次のクエリも同義になります。ON 句で指定されているジョイン条件が、SQL Anywhere が SQL Anywhere サンプル・データベースの外部キー関係に基づいてこれらのテーブルに対して生成するジョイン条件と同じになるためです。
SELECT * FROM Products JOIN SalesOrderItems ON SalesOrderItems.ProductID = Products.ID; |
ON 句を使用したキー・ジョイン
複数の外部キー関係がある場合のキー・ジョイン
テーブル式のキー・ジョイン
ビューと派生テーブルのキー・ジョイン
キー・ジョイン操作規則
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |