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

 

カンマを含まないテーブル式とリストのキージョイン

テーブル式リストがカンマを含まないテーブル式を持つキージョインを介してジョインされる場合、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 によってジョイン条件が組み合わされる。

 例 1
 例 2
 参照