Maison >base de données >SQL >Comprendre les jointures internes, les jointures externes gauches et les jointures externes droites des instructions SQL

Comprendre les jointures internes, les jointures externes gauches et les jointures externes droites des instructions SQL

coldplay.xixi
coldplay.xixiavant
2021-01-15 10:20:464224parcourir

Comprendre les jointures internes, les jointures externes gauches et les jointures externes droites des instructions SQL

Recommandé (gratuit) : Tutoriel SQL

Lorsque vous débutez dans la base de données, avez-vous des doutes sur la requête de connexion dans DQL. Savez-vous quand et quel type de requête de connexion doit être utilisée dans quel scénario ?
Comprendre les jointures internes, les jointures externes gauches et les jointures externes droites des instructions SQL
Ne vous inquiétez pas, laissez-moi vous présenter ma compréhension des caractéristiques et des scénarios d'application des jointures internes, des jointures externes gauches et des jointures externes droites pour votre référence.

Les démonstrations de code suivantes sont basées sur la table des noms et la table des pays.
table des noms

id name
1 西施
2 杨玉环
3 貂蝉
4 王昭君
5 赵飞燕

table des pays

id country A_ID
1 春秋时期越国人 1
2 唐代蒲州永乐人 2
3 东汉末年山西忻州人 3
4 西汉时期南郡秭归人 4
5 战国时期 6

Remarque :
1) b table A_ID Il existe une relation avec la table a_id
2) La requête de connexion consiste à utiliser des conditions d'association pour supprimer les données sans correspondance, sinon un produit cartésien se produira

1) Jointure interne

语法:	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 name id country N_ID
1 西施 1 春秋时期越国人 1
2 杨玉环 2 唐代蒲州永乐人 2
3 貂蝉 3 东汉末年山西忻州人 3
4 王昭君 4 西汉时期南郡秭归人 4

2) Jointure externe gauche

语法:	select 要查询的字段 from 表1 left outer join 表2 on 表1.字段 = 表2.字段;
	outer 可省略
左外连接特点:
	以左表为主,会保留左表中不符合on后条件的数据
应用场景:
	只有部分记录可以从表2中查到,但表1想要显示所有记录,就可以和表2通过左外连接查询。
select * from name n left join country c on n.id=c.N_ID;
id name id country N_ID
1 西施 1 春秋时期越国人 1
2 杨玉环 2 唐代蒲州永乐人 2
3 貂蝉 3 东汉末年山西忻州人 3
4 王昭君 4 西汉时期南郡秭归人 4
5 赵飞燕 null null null

3) Jointure externe droite

语法:	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;
id name id country N_ID
1 西施 1 春秋时期越国人 1
2 杨玉环 2 唐代蒲州永乐人 2
3 貂蝉 3 东汉末年山西忻州人 3
4 王昭君 4 西汉时期南郡秭归人 4
null null 5 战国时期 6

4) Lien complet

语法:	select * from 表1 full join 表2 on 表1.字段 = 表2.字段;完全连接特点:
	会保留表1和表2的全部数据
select * from name n full join country c on n.id=c.N_ID;
id name id country N_ID
1 西施 1 春秋时期越国人 1
2 杨玉环 2 唐代蒲州永乐人 2
3 貂蝉 3 东汉末年山西忻州人 3
4 王昭君 4 西汉时期南郡秭归人 4
5 赵飞燕 null null null
null null 5 战国时期 6

Remarque : Cette syntaxe n'est pas applicable dans MySql
D'accord, j'ai terminé l'introduction. Je ne sais pas si cela sera utile. Et vous les gars ?
S'il y a quelque chose qui ne va pas, veuillez le signaler ~
Comprendre les jointures internes, les jointures externes gauches et les jointures externes droites des instructions SQL

Pour plus de connaissances connexes, veuillez faire attention à la colonne sql~

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer