sql >> データベース >  >> RDS >> Mysql

SQL JOINを使用しないことが悪い習慣であり、間違っている理由を誰かが説明するのを手伝ってもらえますか?

    確かに、両方の形式の構文で同じ結果が得られ、内部的には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をサポートしています。 構文なので、従来のベンダー固有の拡張機能を使用する正当な理由はありません。



    1. Django開発データベースをデフォルトのSQLiteからPostgreSQLに変更する

    2. MS AccessとSQLの違いは何ですか?

    3. nから始まるmySQLのn番目ごとの行を選択する方法

    4. PostgresスキーマのSQLAlchemyサポート