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

これら2つの結合テーブルアプローチの違いは?

    構文を除いて、小さなスニペットの場合、それらはまったく同じように機能します。ただし、可能であれば、常にANSI-JOINを使用して新しいクエリを記述してください。

    意味的には、コンマ表記を使用して2つのテーブル間でデカルト積を生成します。つまり、テーブルAのすべてのレコードとテーブルBのすべてのレコードの行列を生成するため、4レコードと6レコードの2つのテーブルはそれぞれ24レコードを生成します。 WHERE句を使用すると、このデカルト積から実際に必要な行を選択できます。ただし、MySQLは実際にはこの巨大なマトリックスを追跡して作成しませんが、意味的にはこれが意味します。

    JOIN構文は、テーブルの相互作用をより明確に定義するANSI規格です。 ONを置くことによって JOINの横の句 、2つのテーブルをリンクするものが明確になります。

    機能的には、2つのクエリに対して同じように実行されます。他の[OUTER]を使い始めると違いが生じます JOINタイプ。

    特にMySQLの場合、コンマ表記違いが1つあります

    STRAIGHT_JOINはJOINに似ていますが、左側のテーブルが常に右側のテーブルの前に読み取られる点が異なります。これは、結合オプティマイザがテーブルを間違った順序で配置する(少数の)ケースに使用できます。

    ただし、賢明ではありません この違いを利用するために。



    1. MicrosoftIgniteでMichalBarとMeに会いましょう!

    2. AccessでUNPIVOTをシミュレートする方法は?

    3. Toadにストアドプロシージャを呼び出す

    4. オラクルの休止状態シーケンス、@ GeneratedValue(strategy =GenerationType.AUTO)