以下の規則は、これまでに説明した情報をまとめたものです。
この規則は、A KEY JOIN B
に適用されます。ここで、A と B はベース・テーブルまたはテンポラリ・テーブルです。
B を参照する A のすべての外部キーを見つける。
テーブル B の相関名が役割名になる外部キーが存在する場合には、それを優先外部キーとする。
A を参照する B のすべての外部キーを見つける。
テーブル A の相関名が役割名になる外部キーが存在する場合には、それを優先外部キーとする。
優先キーが 2 つ以上存在する場合、そのジョインはあいまいである。構文エラー SQLE_AMBIGUOUS_JOIN (-147)
が発行される。
優先キーが 1 つだけ存在する場合には、この KEY JOIN 式に生成されたジョイン条件を定義するために、この外部キーが選択される。
優先キーがまったくない場合は、A と B 間にある他の外部キーが使用される。
A と B の間に外部キーが 2 つ以上ある場合、そのジョインはあいまいである。構文エラー SQLE_AMBIGUOUS_JOIN (-147)
が発行される。
外部キーが 1 つだけ存在する場合には、この KEY JOIN 式に生成されたジョイン条件を定義するために、この外部キーが選択される。
外部キーがまったくない場合、ジョインは無効であり、エラーが生成される。
この規則は、A KEY JOIN B
に適用されます。ここで、A と B はカンマを含まないテーブル式です。
テーブルの各ペア (テーブル式 A から 1 つとテーブル式 B から 1 つ) について、すべての外部キーをリストし、テーブル間のすべての優先キーにマークする。優先キー決定規則は上記の規則 1 で指定されている。
優先キーが 2 つ以上存在する場合、そのジョインはあいまいである。構文エラー SQLE_AMBIGUOUS_JOIN (-147)
が発行される。
優先キーが 1 つだけ存在する場合には、この KEY JOIN 式に生成されたジョイン条件を定義するために、この外部キーが選択される。
優先キーがまったくない場合は、テーブルのペア間にある他の外部キーが使用される。
外部キーが 2 つ以上存在する場合、そのジョインはあいまいである。構文エラー SQLE_AMBIGUOUS_JOIN (-147)
が発行される。
外部キーが 1 つだけ存在する場合には、この KEY JOIN 式に生成されたジョイン条件を定義するために、この外部キーが選択される。
外部キーがまったくない場合、ジョインは無効であり、エラーが生成される。
この規則は、(A1, A2, ...) KEY JOIN ( B1, B2, ...)
に適用されます。ここで、A1、B1 はカンマを含まないテーブル式です。
テーブル式 Ai と Bj の各ペアに対して、規則 1 または規則 2 を適用し、テーブル式 (Ai KEY JOIN Bj)
用にユニークに生成されたジョイン条件を検出する。テーブル式のペアの KEY JOIN のいずれかが規則 1 または規則 2 によってあいまいであると判断されると、構文エラーになる。
この KEY JOIN 式の生成されたジョイン条件は、手順 1 のジョイン条件の論理積である。
この規則は、(A1, A2, ...) KEY JOIN ( B1, B2, ...)
に適用されます。ここで、A1、B1 はカンマを含む可能性のあるテーブル式です。
テーブル式 Ai と Bj の各ペアに対して、規則 1、規則 2、または規則 3 を適用し、テーブル式 (Ai KEY JOIN Bj)
用にユニークに生成されたジョイン条件を検出する。テーブル式のペアの KEY JOIN のいずれかが規則 1、規則 2、または規則 3 によってあいまいであると判断されると、構文エラーになる。
この KEY JOIN 式の生成されたジョイン条件は、手順 1 のジョイン条件の論理積である。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |