回答:
MySQLのドキュメントはこのトピックをカバーしています。
あらすじです。join
またはを使用する場合inner join
、on
条件はオプションです。これはANSI標準とは異なり、他のほとんどのデータベースとも異なります。効果はcross join
です。同様に、でon
句を使用できますがcross join
、これも標準SQLとは異なります。
クロス結合は、デカルト積を作成します。つまり、最初のテーブルの1行と2番目のテーブルの1行の可能なすべての組み合わせです。3行( 'a'、 'b'、および 'c')のテーブルと4行(たとえば、1、2、3、4)のテーブルのクロス結合は12行になります。
実際には、クロス結合を行いたい場合は、次を使用しますcross join
。
from A cross join B
よりもはるかに優れています:
from A, B
そして:
from A join B -- with no on clause
このon
句は、右または左の外部結合に必要なので、ディスカッションはそれらには関係しません。
さまざまな種類の結合を理解する必要がある場合は、リレーショナルデータベースの調査を行う必要があります。Stackoverflowは、そのレベルのディスカッションには適切な場所ではありません。
複数のテーブルを1つの出力に組み合わせるUNIONの使用を調査することもできます。SQL-1つの出力に2つのテーブルを組み合わせる
ON
句はサーバーにテーブルがどのように関連しているかを伝えますので、違います。さまざまな結合タイプがすべて同じ結果をもたらす場合は、どういうわけか間違っているので、コードを追加すると問題を特定するのに役立ちます。その間、Jeff Atwoodのブログにアクセスして、さまざまな結合の種類を2分間紹介してください。