外部ジョインを使用する場合を除き、ON 句の代わりに WHERE 句でジョイン条件を指定できます。ただし、外部ジョインがクエリに含まれる場合には、ON 句と WHERE 句には意味の違いが生じます。
ON 句は、FROM 句の一部であるため、WHERE 句よりも前に処理されます。このことは、外部ジョインの場合、つまり、WHERE 句を使用することで外部ジョインを内部ジョインに変換できる場合を除いて、結果にはなんら変化をもたらしません。
ジョイン条件を ON 句にいれるか、WHERE 句に入れるかを決定するときには、次の規則を考慮してください。
外部ジョインを指定するときに WHERE 句にジョイン条件を入れると、外部ジョインが内部ジョインに変換されます。
WHERE 句と外部ジョインの詳細については、外部ジョインとジョインの条件を参照してください。
ON 句内の条件は、これと関連付けられた JOIN で結合するテーブル式内のテーブルのみ参照できます。ただし、WHERE 句内の条件は、その条件がジョインの一部になっていなくても、任意のテーブルを参照できます。
ON 句はキーワード CROSS JOIN とともには使用できませんが、WHERE 句はいつでも使用できます。
ジョイン条件が ON 句内にある場合、キー・ジョインはデフォルトにはなりません。ただし、ジョイン条件が WHERE 句内にあると、キー・ジョインをデフォルトにできます。
キー・ジョインがデフォルトになるときの条件の詳細については、キー・ジョインがデフォルトの場合を参照してください。
このマニュアルの例では、ON 句の中でジョイン条件を使用しています。外部ジョインを使用する場合は、これが必要です。他のジョインでも、それらがジョイン条件であって一般的な探索条件ではないことを明確にするために、ON 句の中でジョイン条件が使用されています。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |