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

デフォルトのMySQLJOINの動作、INNERまたはOUTERは何ですか?

    MySQLでJOINを書く unqualifiedは、INNER JOINを意味します 。言い換えれば、INNER INNER JOINで オプションです。 INNER およびCROSS MySQLの同義語です。わかりやすくするために、JOINと書きます。 またはINNER JOIN 結合条件があり、CROSS JOINがある場合 条件がない場合。

    結合に許可される構文は、ドキュメント で説明されています。 。

    効果は同じですが、その背後にある歴史は異なります。カンマ構文は、ANSI-89規格に準拠しています。ただし、この構文には多くの問題があるため、ANSI-92規格ではJOINキーワードが導入されました。

    常にすることを強くお勧めします カンマではなくJOIN構文を使用してください。

    • T1 JOIN T2 ON ... T1, T2 WHERE ...よりも読みやすい 。
    • テーブルの関係とフィルターが混在するのではなく明確に定義されているため、より保守しやすくなります。
    • JOIN構文は、コンマ構文よりもOUTERJOINに変換する方が簡単です。
    • 同じステートメントでカンマとJOIN構文を混在させると、優先順位の規則が原因で奇妙なエラーが発生する可能性があります。
    • 結合句が結合の横に記述されており、結合句が欠落しているかどうかを簡単に確認できるため、結合句を忘れたためにJOIN構文を使用するときに誤ってデカルト積を作成する可能性が低くなります。


    1. PostgreSQL 9.2 JDBCドライバーはクライアントのタイムゾーンを使用しますか?

    2. テーブルをロックせずに巨大なMySQL本番テーブルにインデックスを作成する

    3. 日付/時刻範囲のデータを選択

    4. MariaDBで英数字以外の文字のみを含む行を返す2つの方法