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

どちらの結合構文が優れていますか?

    まあ、「より良い」は主観的です。ここにはいくつかのスタイルがあります。しかし、私はあなたの質問に直接答えます。

    1. どちらも同じように実行します
    2. どちらもANSIに準拠しています。
    3. 最初の例の問題はそれです

      • クロス積を誤って導出するのは非常に簡単です(結合基準を省略しやすいため)

      • また、結合にテーブルを追加するにつれて、結合基準のデバッグも困難になります

      • 古いスタイルの外部結合(* =)構文は廃止されたため(誤った結果を返すことが長い間文書化されています)、外部結合を導入する必要がある場合は、新しいスタイルと古いスタイルの結合を混在させる必要があります...なぜプロモートするのか矛盾がありますか?

      • これはベストプラクティスの権威ではありませんが、Microsoftは明示的なINNER /OUTERJOIN構文を推奨しています

      • 後者の方法の場合:

        • 内部/外部に関係なく一貫した結合構文を使用しています
        • 誤って外積を導出することはより困難です(不可能ではありません)
        • 結合基準をフィルター基準から分離すると、デバッグが容易になります

    ケビンが指摘した投稿を書きました。




    1. 'localhost'のMySQLサーバーに接続できません(10061)

    2. SQLServerで英数字以外の文字を含む行を返す

    3. SQLNVARCHARおよびVARCHARの制限

    4. Pythondatetime.datetimeオブジェクトをMySQLに挿入する