ホームページ  >  記事  >  データベース  >  SQL ステートメントの内部結合、左外部結合、および右外部結合を理解する

SQL ステートメントの内部結合、左外部結合、および右外部結合を理解する

coldplay.xixi
coldplay.xixi転載
2021-01-15 10:20:464120ブラウズ

SQL ステートメントの内部結合、左外部結合、および右外部結合を理解する

# 推奨 (無料): SQL チュートリアル

データベースを初めて学習するとき、DQL の接続クエリについて疑問を持ちませんか?どのようなシナリオで、いつ、どのような種類の接続クエリを使用する必要があるか知っていますか?


SQL ステートメントの内部結合、左外部結合、および右外部結合を理解する 心配しないでください。参考までに、内部結合、左外部結合、右外部結合の特性と適用シナリオについての私の理解を紹介します。

次のコードのデモは、名前テーブルと国テーブルに基づいています。


名前テーブル

id名前1西士2ヤン・ユーファン3 貂蝉4王昭君##5
趙飛燕
カントリーテーブル

id12 34#5戦国時代 6注:
country A_ID
春秋時代の越人 1
唐時代の浦州永楽の人 2
山西省忻州の人後漢末期 3
前漢時代の南順子亀の人々 4
1) b テーブル A_ID とテーブル a_id の間に関係があります。
2) 接続クエリは関連付け条件を使用して不一致を削除します。それ以外の場合、データはデカルト積になります。



1) 内部参加

语法:	select  要查询的字段 from 表名1 inner join 表名2 on 表1.字段 = 表2.字段;
	inner join 可简写为 逗号,
内连接特点:
	只会保留完全符合on后条件的数据
应用场景:
	如果两张表有外键关系可以使用内链接,因为通过内链接每一条只能返回单条记录
select * from name n inner join country c on n.id = c.N_ID;
idname idcountryN_ID##1西士#2楊玉環2唐の時代、浦州永楽の人物234
语法:	select 要查询的字段 from 表1 left outer join 表2 on 表1.字段 = 表2.字段;
	outer 可省略
左外连接特点:
	以左表为主,会保留左表中不符合on后条件的数据
应用场景:
	只有部分记录可以从表2中查到,但表1想要显示所有记录,就可以和表2通过左外连接查询。
rrree
1 元国人 1
##3 貂蝉
東漢末期の山西省忻州出身 3 4 王昭君
前漢時代の南淳紫亀出身 4 2) 左外部結合

id ​​

名前id西士12##3貂蝉3 後漢末期の山西省忻州出身の人物3南君子桂 前漢時代の人々null
N_ID 1
元国人 1 2 楊玉環
唐代浦州永楽の人物 2
##4 王昭君 4
4 5 趙飛燕 null
null 3) 右外部結合
select * from name n left join country c on n.id=c.N_ID;
rrree
id

name

idcountry #1西士1元国人123##4王趙君4前漢時代の南淳紫桂の出身4null null5戦国時代64) フルリンク
语法:	select * from 表1 right outer join 表2 on 表1.字段 = 表2.字段;
	outer 可省略
右外连接特点:
	以右表为主,会保留右表中不符合on后条件的数据
应用场景:
	和左外连接相反
	只有部分记录可以从表1中查询到,但表2想要显示所有记录, 就可以和表1通过右外连接查询。
select * from name n right join country c on n.id=c.N_ID;
idname
N_ID
##2 楊玉環 2 唐代浦州永楽出身の人物
3 貂蝉 3 後漢末期の山西省忻州出身の人物

idcountry

N_ID1 ##2楊玉環2唐代浦州永楽出身の人物2# 345null では適用できません。 何か間違っている場合は、ご指摘ください~sql 列に注目してください~
##1 xishi 1 元国人
貂蝉 3 後漢末期の山西省忻州人 3
王赵君 4 西漢代子亀出身、南順 4
趙飛燕 null null null
null 5 戦国時代 6
注: この構文は MySql さて、紹介は終わりましたが、お役に立ったでしょうか? さらに関連する知識については、

以上がSQL ステートメントの内部結合、左外部結合、および右外部結合を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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