ホームページ  >  記事  >  データベース  >  MySQL で完全な外部接続を実装する方法

MySQL で完全な外部接続を実装する方法

PHPz
PHPz転載
2023-05-31 08:37:552540ブラウズ

    MySql マルチテーブル クエリは、内部結合、左外部結合、および右外部結合のみを提供します:

    table_reference {[INNER] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference ON conditional_expr

    1]INNER JOIN ON 内部結合 (結合を記述するときのデフォルトは内部結合です)

    SELECT * FROM emp e JOIN dept d ON e.deptno=d.deptno;

    MySQL で完全な外部接続を実装する方法

    2]外部結合

    左外部結合と右外部結合の両方で 1 つのテーブルをベース テーブルとして使用しますを選択すると、テーブルのすべての内容が表示され、次に 2 つのテーブルの一致する内容が追加されます。

    実表のデータが別の表に記録されていない場合。

    この場合、関連する結果セット行の列にはヌル値 (NULL) が表示されます。

    2.1. 左外部結合: 左のテーブルのすべてのレコードを表示します

    SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;

    MySQL で完全な外部接続を実装する方法

    ##2.2. 右外部結合: 右のテーブルのすべてのレコードを表示します

    SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

    MySQL で完全な外部接続を実装する方法

    2.3. 完全外部結合

    左側のテーブルと右側のテーブルに制限はなく、すべてのレコードが表示され、2 つのテーブルの不足箇所が表示されます。 null で埋められています;

    つまり:

    • 左外部結合 = 左側のテーブル内のすべてのレコードが関連する結果です

    • 右外部結合 = 右テーブルのすべてのレコード 関連結果

    • 完全外部結合=左テーブルのすべてのレコード右テーブルのすべてのレコード関連結果=左外部結合右外部結合関連結果 (重複排除など)

    では、誰が MYSQL でそれを実行できるのでしょうか?

    UNION

    UNION 演算子は、2 つ以上の SELECT ステートメントの結果セットを結合するために使用されます。

    注: デフォルトでは、UNION 演算子は異なる値を選択します。重複した値が許可される場合は、UNION ALL を使用します。

    したがって、完全外部結合を使用できます:

    SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno
    UNION
    SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

    MySQL で完全な外部接続を実装する方法

    注: 上記の接続はすべて同等の結合です。Oracle では、完全外部結合を使用できます。完全外部結合; 混同しないでください。

    以上がMySQL で完全な外部接続を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。