最も単純なタイプの結合はクロス結合です。これには、テーブルを乗算してすべてを含む積を作成することが含まれます。
例:
select * from students,person;//結果は 2 つのテーブルの組み合わせです
2 つのテーブルのすべての列が結合されて、すべての可能な組み合わせを含む結果セットが生成されます。このタイプはクロス結合と呼ばれ、結合後の結果のテーブルの行数は、結合に使用された各テーブルの行数の積と同じになります。
上記の相互接続はデータベース サーバーのパフォーマンスに大きな影響を与えるため、接続で where 句を使用して一部のレコードをフィルタリングすることをお勧めします。
内部結合は最も一般的なタイプの結合であり、結合のすべての部分を構成するすべてのテーブルからの一致が必要であり、一致しない行は除外されるため、最も均一です。最終結果 セット外の内部結合の最も一般的な例は等価結合です。これは、結合されたテーブル内のフィールドが各テーブル内のフィールドと同じであることを意味します。この場合、最終的な結果セットには、指定されたフィールドに一致する結合テーブル内の行のみが含まれます。
結合のどちら側が保持されるかに応じて、SQL は左外部結合と右外部結合。左外部結合では、結合の左側にあるテーブルの、where 句に一致するすべてのレコードが最終結果セットに表示されます。右外部結合では、結合の右側にあるテーブルの、where 句に一致するすべてのレコードが最終結果セットに表示されます。
まず、各選択クエリによって返されるフィールドの数が同じである必要があります。
次に、各選択クエリのフィールドのデータ型が互いに一致する必要があります。
having 句の比較演算子の前にサブクエリを使用して、親クエリによって作成されたグループをフィルタリングすることもできます。
exists 演算子は、サブクエリが結果を生成したかどうかをクエリするために使用できます。これにより、exists テストが true を返した場合にのみ外部クエリを実行できます。
サブクエリによって生成された結果は、select の from 句でも使用できます。ステートメントをテーブルとして表示します。
この方法でサブクエリの結果を使用する場合、内部クエリによって生成された結果テーブルは最初に別のテーブル名を取る必要があり、そうでないと MySQL はテーブル内のカラムを参照する方法を認識できないことに注意してください。
以上がMySQL の高度なドリフトについての深い理解 (4)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。