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