テーブル式リストがカンマを含まないテーブル式を持つキージョインを介してジョインされる場合、SQL Anywhere はテーブル式リストの各テーブルに対してジョイン条件を生成します。
たとえば、次の文は、テーブル式リストと、カンマを含まないテーブル式のキージョインです。この例では、テーブル式 C NATURAL JOIN D
が指定されたテーブル A と、テーブル式 C NATURAL JOIN D
が指定されたテーブル B のジョイン条件が生成されます。
SELECT * FROM (A,B) KEY JOIN (C NATURAL JOIN D); |
(A,B)
はテーブル式のリストで、C NATURAL JOIN D
はテーブル式です。したがって、SQL Anywhere は 2 つのジョイン条件を生成する必要があります。1 つは A-C と A-D ペアのジョイン条件で、もう 1 つは B-C と B-D ペアのジョイン条件です。このように外部キー関係が複数存在する場合は、次のキージョイン規則に従って処理されます。
テーブルペアの各セットに対して、プライマリキーテーブルの 1 つの相関名と同じ名前の役割名を持つ外部キーが検索される。この基準に合う外部キーが 1 つだけ存在する場合には、それが使用される。2 つ以上見つかると、そのジョインはあいまいになりエラーが発行される。
テーブルペアの各セットに、テーブルの相関名と同じ名前の外部キーがない場合は、そのテーブル間の外部キー関係が検索される。存在する外部キー関係が 1 つだけであれば、それが使用される。2 つ以上見つかると、そのジョインはあいまいになりエラーが発行される。
テーブルペアの各セットに、外部キー関係がまったく存在しない場合は、エラーが発行される。
各ペアにジョイン条件を 1 つだけ決定できる場合は、キーワード AND によってジョイン条件が組み合わされる。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |