Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » ジョイン:複数テーブルからのデータ検索 » 明示的なジョイン条件 (ON 句)

 

ジョイン条件内の WHERE 句

外部ジョインを使用する場合を除き、ON 句の代わりに WHERE 句でジョイン条件を指定できます。ただし、外部ジョインがクエリに含まれる場合には、ON 句と WHERE 句には意味の違いが生じます。

ON 句は、FROM 句の一部であるため、WHERE 句よりも前に処理されます。このことは、外部ジョインについて、WHERE 句を使用することによって内部ジョインに変換できる場合を除き、結果には影響を及ぼしません。

ジョイン条件を ON 句にいれるか、WHERE 句に入れるかを決定するときには、次の規則を考慮してください。

  • 外部ジョインを指定するときに WHERE 句にジョイン条件を入れると、外部ジョインが内部ジョインに変換されます。

  • ON 句内の条件は、これと関連付けられた JOIN で結合するテーブル式内のテーブルのみ参照できます。ただし、WHERE 句内の条件は、その条件がジョインの一部になっていなくても、任意のテーブルを参照できます。

  • ON 句はキーワード CROSS JOIN とともには使用できませんが、WHERE 句はいつでも使用できます。

  • ジョイン条件が ON 句内にある場合、キージョインはデフォルトにはなりません。ただし、ジョイン条件が WHERE 句内にあると、キージョインをデフォルトにできます。

このマニュアルの例では、ON 句の中でジョイン条件を使用しています。外部ジョインを使用する場合は、これが必要です。他のジョインでも、それらがジョイン条件であって一般的な探索条件ではないことを明確にするために、ON 句の中でジョイン条件が使用されています。

 参照