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

 

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

ジョインされている 2 つのテーブル式のどちらにもカンマが含まれていない場合、SQL Anywhere は文中にあるテーブルのペアの外部キー関係を調べ、ジョイン条件を 1 つだけ生成します。

たとえば、次のジョインには A-C と B-C という 2 つのテーブルペアがあります。

(A NATURAL JOIN B) KEY JOIN C

C と (A NATURAL JOIN B) をジョインするために、SQL Anywhere はテーブルペア A-C と B-C の外部キー関係を調べて、ジョイン条件を 1 つだけ生成します。複数の外部キー関係が存在する場合は、次のキージョイン決定規則に基づき、この 2 つのペアに対して 1 つのジョイン条件を生成します。

  • まず、参照先となるプライマリキーテーブルのうち、その 1 つの相関名と同じ役割名を持つ単一の外部キーを指定するために A-C および B-C の両方が調べられる。この基準に合う外部キーが 1 つだけ存在する場合には、それが使用される。テーブルの相関名と同じ役割名の外部キーが 2 つ以上ある場合、そのジョインはあいまいと見なされてエラーが発行される。

  • テーブルの相関名と同じ名前の外部キーがない場合は、そのテーブルの外部キー関係が検索される。見つかった外部キー関係が 1 つであれば、それが使用される。2 つ以上見つかると、そのジョインはあいまいと見なされてエラーが発行される。

  • 外部キー関係がまったく存在しない場合は、エラーが発行される。

 例