質問: 結合元テーブル.key ``` また(古いバージョンの?)Oracleでは結合条件にパラメータを利用すると「結合先を右に書くパターン」がSQLエラーとなるため、プロジェクト規約で「結合先を右に書くパターン」を採用していたとしてもそこだけは「結合先を右に書くパターン」で記述せざるを得ないことになります。 このようにどちらにも利点・欠点がありますが、どちらを採用するのが正しいのでしょうか? ( ちなみに私は基本的に「結合先を左に書くパターン」を採用しています )
回答: 先か後かどちらに書いても、実行計画上影響はないはずですから、基準なんて無いんじゃないですか? オプチマイザに癖があるならそれに合わせて書くしかないでしょうし。 そもそも結合先/元と言われていますが、外部参照を基準にされているように感じます。 right joinでも先から書くんでしょうか?また、等結合の場合の元ってどっちでしょう? 順番を気にするとしたら可読性の話で、その場合は結合で書かれた順序に合わせた方が読みやすいと思います。 > > 結合条件に定数やパラメータを指定する場合は以下のように、「結合先を左に書くパターン」の方が自然な記述になります。 > > > という事ですけど、以下のように結合条件を先に記述して、フィルター条件を後に記述するというのも自然だと思います。 ``` SELECT * FROM 結合元テーブル LEFT JOIN 結合先テーブル ON 結合元テーブル.key = 結合先テーブル.key AND 結合先テーブル.key_type = 'hoge_type' ```