SQLでやりがちな外部結合のミスや誤り

最近はJOINで表結合されたSQLを多く見るようになったのであまりみかけないのですが
一世代前の人間はORACLEで外部結合するとき、(+)を使っていますよね。

私も一世代前の人間です(笑)

そんな外部結合をするときにやりがちなミスというのが↓のようなSQLです。
一見、外部結合出来ているように見えますが、実は外部結合になっていません。
実行計画を見れば明白です。

select
  a.id
  ,b.div_cd
  ,b.div_nm
from
  table1 a
  ,table b
where
  a.div_cd = b.div_cd(+)
  and b.div_cd = ‘100’
;

外部結合するときは正しくは↓です。
結合条件の他に、絞り込み条件にも(+)を付けてあげましょう。
これでミスなく外部結合されます!

select
  a.id
  ,b.div_cd
  ,b.div_nm
from
  table1 a
  ,table b
where
  a.div_cd = b.div_cd(+)
  and b.div_cd(+) = ‘100’
;