確かに、両方の形式の構文で同じ結果が得られ、内部的にはMySQLが両方をまったく同じ方法で実行します。 SQL標準の現在のバージョンは両方の形式をサポートしていますが、コンマスタイルは下位互換性のためにのみサポートされています。
カンマスタイルの構文の使用が失敗する場合がありますが、それはエキゾチックです:
SELECT * FROM A, B JOIN C ON C.x = A.y;
JOIN
演算子はコンマよりも優先されます。したがって、上記のクエリはC.x = A.y
を評価しようとしています。 A
も知らない クエリの一部です。したがって、エラーが発生します:
ERROR 1054 (42S22): Unknown column 'A.y' in 'on clause'
最善の解決策は、JOIN
を使用することです それらを混合するのではなく、一貫して構文を作成します。
また、コンマ結合構文を使用して外部結合を作成することはできません。 OracleとSybase/Microsoftはそれぞれ、外部結合を処理するための独自の構文を発明しましたが、どちらも他のブランドのRDBMSではサポートされていません。現在、OracleおよびSybase / Microsoftを含む現在のすべてのバージョンのRDBMSは、標準のJOIN
をサポートしています。 構文なので、従来のベンダー固有の拡張機能を使用する正当な理由はありません。