ホームページ  >  記事  >  データベース  >  mysqlの左結合、右結合、内部結合

mysqlの左結合、右結合、内部結合

王林
王林転載
2019-08-23 15:11:203129ブラウズ

A ガソリン カード テーブル:

id、userName、cardNo

1 aaa 222

B給油記録テーブル:

id、number、userName、 CardNo,

1 1234 111

##2 234 bbb left join:

select * from B   b    left join  A a on a.userName = b.userName   where b.userName=aaa

上記 SQL の on 以降の条件により、userName はテーブル内の複数のエントリに対応します1 ではなく A であり、結果セットはデカルト積になります。表 B の 1 つの項目は、表 A の残りの 2 つの項目を満たします。結果は 2 です。

select * from B   b    left join  A a on a.userName = b.userName  and a.cardNo = b.cardNo  where b.userName=aaa

上記の SQL では、on 以降の 2 つの条件ではテーブル A 内で一意のデータが 1 つしか見つかりません。そのため、結果はテーブル B 内でどこを満たすデータがいくつあるかとなり、結果セットは次のようになります。データの個数を返します。これは返されたデータの一部です。

右結合:

次の SQL は、上記の左結合と同じ効果があります:

select * from A   a    right join  B b on a.userName = b.userName  and a.cardNo = b.cardNo  where b.userName=aaa

inner join:

select * from A   a    inner  join  B b on a.userName = b.userName  and a.cardNo = b.cardNo  where a.userName=aaa
まず、on 以降の条件を見てみましょう。テーブル A のデータが on の 2 つの条件に一致し、B にデータが 1 つだけある場合、 where 条件を満たすデータを 2 つ返します。

select * from B   b    inner  join  A a on a.userName = b.userName  and a.cardNo = b.cardNo  where a.userName=aaa

上記を要約すると、後ろの条件を見て、関連テーブルに 1 つ以上のデータがあるかどうかを確認します。

その他の関連する質問については、PHP 中国語 Web サイトを参照してください:

mysql ビデオ チュートリアル

以上がmysqlの左結合、右結合、内部結合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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