データベースを初めて学習するとき、DQL の接続クエリについて疑問を持ちませんか?どのようなシナリオで、いつ、どのような種類の接続クエリを使用する必要があるか知っていますか?
心配しないでください。参考までに、内部結合、左外部結合、右外部結合の特性と適用シナリオについての私の理解を紹介します。
名前テーブル
名前 | |
---|---|
西士 | |
ヤン・ユーファン | |
貂蝉 | |
王昭君 | |
趙飛燕 |
country | A_ID | |
---|---|---|
春秋時代の越人 | 1 | |
唐時代の浦州永楽の人 | 2 | |
山西省忻州の人後漢末期 | 3 | |
前漢時代の南順子亀の人々 | 4 | #5 |
6 |
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;
id | country | N_ID | ||
---|---|---|---|---|
1 | 元国人 | 1 | #2 | 楊玉環 |
唐の時代、浦州永楽の人物 | 2 | ##3 | 貂蝉 | |
東漢末期の山西省忻州出身 | 3 | 4 | 王昭君 | |
前漢時代の南淳紫亀出身 | 4 | 2) 左外部結合 |
id
名前国 | N_ID | 1 | ||
---|---|---|---|---|
元国人 | 1 | 2 | 楊玉環 | |
唐代浦州永楽の人物 | 2 | ##3 | 貂蝉 | 3 |
3 | ##4 | 王昭君 | 4 | |
4 | 5 | 趙飛燕 | null | |
null | 3) 右外部結合 |
select * from name n left join country c on n.id=c.N_ID; ログイン後にコピー |
name
idN_ID | #1 | 西士 | 1 | |
---|---|---|---|---|
##2 | 楊玉環 | 2 | 唐代浦州永楽出身の人物 | |
3 | 貂蝉 | 3 | 後漢末期の山西省忻州出身の人物 | |
##4 | 王趙君 | 4 | 前漢時代の南淳紫桂の出身 | 4 |
null | null | 5 | 戦国時代 | 6 |
4) フルリンク | id |
idcountry
##1 | xishi | 1 | 元国人 | |
---|---|---|---|---|
楊玉環 | 2 | 唐代浦州永楽出身の人物 | 2 | |
貂蝉 | 3 | 後漢末期の山西省忻州人 | 3 | |
王赵君 | 4 | 西漢代子亀出身、南順 | 4 | |
趙飛燕 | null | null | null | |
null | 5 | 戦国時代 | 6 | |
注: この構文は MySql | では適用できません。さて、紹介は終わりましたが、お役に立ったでしょうか? | 何か間違っている場合は、ご指摘ください~さらに関連する知識については、 | sql
以上がSQL ステートメントの内部結合、左外部結合、および右外部結合を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。