テーブル結合を利用するSQLを記述するとき、以下の2パターンはどちらも正常にデータを取得できます。
この2つのうち、コーディング規約としてSQL標準や業界全体で推奨されているのはどちらでしょうか?
( SQLの"SELECT"等のキーワードは慣習として小文字ではなく大文字で書くことが多いのようなレベルの話で構わないのですが、そもそも推奨される書き方が存在するのでしょうか? )
結合先を右に書くパターン
SQL
1SELECT * 2 FROM 結合元テーブル 3 LEFT JOIN 結合先テーブル ON 結合元テーブル.key = 結合先テーブル.key
結合先を左に書くパターン
SQL
1SELECT * 2 FROM 結合元テーブル 3 LEFT JOIN 結合先テーブル ON 結合先テーブル.key = 結合元テーブル.key
「結合先を右に書くパターン」は、テーブルの記述順と結合条件の記述順が一致するため直感的です。
しかし結合条件に定数やパラメータを指定する場合は以下のように、「結合先を左に書くパターン」の方が自然な記述になります。
SQL
1SELECT * 2 FROM 結合元テーブル 3 LEFT JOIN 結合先テーブル ON 結合先テーブル.key_type = 'hoge_type' 4 AND 結合先テーブル.key = 結合元テーブル.key
また(古いバージョンの?)Oracleでは結合条件にパラメータを利用すると「結合先を右に書くパターン」がSQLエラーとなるため、プロジェクト規約で「結合先を右に書くパターン」を採用していたとしてもそこだけは「結合先を右に書くパターン」で記述せざるを得ないことになります。
このようにどちらにも利点・欠点がありますが、どちらを採用するのが正しいのでしょうか?
( ちなみに私は基本的に「結合先を左に書くパターン」を採用しています )

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/25 16:41
2019/01/26 01:49