典型的な左外部結合のシナリオを考えてみましょう。表の順序が非常に重要であることは誰もが知っています。たとえば、Q1とQ2は同じではありません。
SELECT A.x, B.y FROM A LEFT OUTER JOIN B ON A.id = B.id -- (Q1)
SELECT A.x, B.y FROM B LEFT OUTER JOIN A ON B.id = A.id -- (Q2)
複数の結合について概念的に考えるとき、通常、関心のあるオブジェクトとして新しいテーブルを取り上げ、その行が以前のものとどのように関連しているかを説明することを想像するのは自然なことのように思えます。用語を並列に保つことは私にとって何の利点もありません。私自身の習慣により、私は通常、結合条件を次のように記述します。
SELECT A.x, B.y FROM A LEFT OUTER JOIN B ON B.id = A.id -- (Q3)
構文がどのように機能するかを誤解している元同僚と会話しました。この同僚にとって、Q3は間違っていて、Q1は正しかった。そして、古いスタイルの外部結合構文ではこれが重要であり、それがおそらくこの混乱の原因であることを認識しています。私は、ANSI 結合を使用してこのケースを作成する人を他の誰かが聞いたり見たりしたことがありません。この質問に答えて、私の評判を取り戻してください。私が見落としていたことを指摘してください。または、誤った見方についてより深い洞察を提供してください。
式または述語の順序は、ANSI 結合を使用した標準 SQL の外部結合の結合条件に違いをもたらしますか?