外部結合、あなたは左派? 右派?

 SQL の外部結合には左、右、完全の3種類があります。このうち、左と右の表現力は同じなので、機能的にはどちらを使ってもかまいません(外部結合の機能については、拙稿「外部結合の使い方」参照)。

 とはいえ、プログラミング作法の観点から見た場合、左外部結合と右外部結合は、どちらかを推奨するべき合理的な理由というものがあるでしょうか。「どっちでもいいんじゃないか」と言われれば、まあ些細な話です。でも私、前からちょっと気にはなってたんですが、皆さんはどうでしょう。書籍などを見る限り、一般的には、左外部結合を使っているケースが多いように思います。私も自分では左を使います。

 あるいは、自動車のハンドルの右左とか歩行者の歩く側みたいに、たいした理由無くマチマチで決まるのかもしれませんが、そこを敢えて理由を探してみると、どんなものがあるでしょうか。

 私は、左外部結合には一つスタイルとしてのメリットがあると思います。それは、結果の表側は当然、左側に来るので(右に表側がある表って、見たことない)、左のテーブルにマスタを持ってくることで、SQLと結果イメージの形が一致する、ということです。これは、ぱっとSQLを見たときに結果を想像しやすくさせることに資するのではないでしょうか。

 一方、右外部結合を使うことの合理的な理由は何でしょう? 一つ挙げるとすれば、SQLを考えるときは、最初にデータテーブルから出発して、その後にマスタとの結合を考えるので、データテーブルを先(つまり左)に持ってくることで、SQLが思考の流れに沿うのかもしれません。私はあまりそういう感じを持たないのですが、なくはない、という気もします。

 皆さんは、左と右、どちらを好んで使いますか? そしてもし自分がどちらか一方を特に好んで使うとしたら、そこにはどんな理由がありうると思いますか?