■No90144 (粗品 さん) に返信
> というのがありますが、LEFT の ON以降の条件式の左辺、右辺のルールとかあるのでしょうか?
構文上は問題ないので「分かりやすければどちらでもいい」です。
ただ、私が書く場合は(A.xxx = B.xxx)にすると思います。
"A LEFT OUTER JOIN B"である以上、Aが左テーブル、Bが右テーブルであるためです。
> ただこのBテーブルの条件に区分が1の時、を入れるとしたらこの考え方だと
> LEFT OUTER JOIN B ON A.xxx = B.xxx AND B.区分 = 1
> となり、「B.」が左辺右辺両方に出ることになります。
という例を挙げられていますが、
「Aテーブルの情報を表示する。
ただし、Aテーブルの"重要度"が"1"の場合は
Bテーブルから同一IDで"区分"が"1"のデータを併記する」
という条件になった場合、
LEFT OUTER JOIN B ON A.重要度 = 1 AND A.ID = B.ID AND B.区分 = 1
となり統一も何もないです。
> このテーブル
という表現を見るに、
おそらく、"LEFT OUTER JOIN B ON A.xxx = B.xxx"をひとかたまりとして、
ONの後の条件をBに対する制約と見ているために起きた疑問だと思うのですが、
実際は"A LEFT OUTER JOIN B ON A.xxx = B.xxx"まででひとかたまりであり、
ONの後の条件はAとBの結合条件です。
|