ホームページ  >  記事  >  データベース  >  mysql で完全結合...on... を使用する方法

mysql で完全結合...on... を使用する方法

王林
王林転載
2023-05-26 17:52:472804ブラウズ

    mysql での完全結合...on... の使用

    ほとんどの開発者は混乱しているかもしれませんが、なぜ SQL ステートメントを作成する必要があるのでしょうか? すべて間違っています。 。

    … 上の完全結合 … は mysql データベースをサポートせず、Oracle データベースのみをサポートするため、非常に簡単です。

    早速、例を挙げてみましょう。

    select a.* FROM
        (select
        table1.*,table2.*
        from table1 left JOIN table2 on table1.id=table2 .tid <-- 用左外连接 -->
        UNION <-- 通过UNION来链接 -->
        select
        table1.*,table2.*
        from table1 right JOIN table2 on table1.id=table2 .tid) as a <-- 用右外连接 -->
        where 
        a.id = #{id} <-- 如果要根据条件查询,必须要把上面括号里的当做子查询,条件必须写在外面 -->
        ORDER BY id <-- 其它操作跟在后面 -->

    とても簡単だと思いませんか。初心者にとっては、長い間苦労するかもしれないので、ここで終わりです。

    mysql の結合接続の種類は何ですか?

    結合の種類は何ですか?

    (1) 内部結合

    select * from user1 a INNER JOIN user2 b on a.id=b.id

    INNER JOIN 内部結合は 2 つのテーブル間の交差を示します。 , クエリ条件(上記SQL文ではa.id=b.id)を満たす情報が取得されます。

    (2) JOIN 接続左結合/左外部結合 (LEFT JOIN/LEFT OUTER JOIN)

    select * from user1 a LEFT JOIN user2 b on a.id=b.id

    左結合は、左のテーブルのすべての情報をクエリし、クエリ条件を満たす情報 (たとえば、上記の a.id=b.id、つまり、関連付けられたクエリ条件を満たす左右のテーブルの情報) の 2 つの部分があります。

    (3) JOIN 接続の Right JOIN/RIGHT OUTER JOIN(RIGHT JOIN/RIGHT OUTER JOIN)

    select * from user1 a RIGHTJOIN user2 b on a.id=b.id

    右側の結合は、右側の右側のテーブルをクエリします。 RIGHT JOIN のすべての情報と、関連するクエリ条件 (つまり、上記の a.id=b.id 条件) を満たす左側と右側。

    (4) 完全結合 …on…)

    select * from user1 a FULL JOIN user2 b on a.id=b.id

    完全外部結合は、実際には左結合と右結合のコレクションです。つまり、左テーブルと右テーブルのすべてのデータをクエリします。

    (5) クロス結合(クロス結合...)

    select * from user1 a CROSS JOIN user2 b on a.id=b.id

    クロス結合はデカルト積とも呼ばれ、クエリによって返される行数は等しいです。 2 つのテーブル行の数値の積。

    以上がmysql で完全結合...on... を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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