ON 条件なしの MySQL JOIN の謎を明らかにする
条件を付けずに複数のテーブルのデータをマージする必要が生じるシナリオに遭遇することは珍しいことではありません。 JOIN クエリで ON 条件を明示的に指定します。このような場合、MySQL は従来の ANSI 標準とは異なる独自の結合機能を提供します。このバリエーションを理解することで、開発者は MySQL の JOIN メカニズムの力を効果的に利用できるようになります。
クロス結合のオプション
ON 句なしで JOIN または INNER JOIN を利用する場合、MySQL はクロス結合操作を実行します。このアクションは、デカルト積を生成するため、他のデータベースや ANSI 標準とは大きく異なります。簡単に言うと、指定された各テーブルから 1 つの行のあらゆる組み合わせが生成されます。
例:
それぞれ 3 つと 4 つを持つ 2 つのテーブル A と B を考えてみましょう。それぞれ行。これらのテーブル間のクロス結合の結果は 12 行になり、それぞれが A と B の行の一意のペアを表します。
クロス結合のベスト プラクティス
一方、クロス結合では次のことが可能です。特定の状況では役に立ちますが、慎重に使用することが重要です。 ON 句がないことに依存するのではなく、CROSS JOIN 構文を使用してクロス結合操作を明示的に示すことを強くお勧めします。これにより、明確さが促進され、潜在的な混乱が回避されます。
右外部結合と左外部結合
クロス結合とは対照的に、右外部結合と左外部結合が正しく機能するには ON 句が必要です。したがって、ON 条件なしの結合に関する説明は、これらのタイプの結合には関係しません。
以上がMySQL は ON 句のない JOIN をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。