Maison > base de données > SQL > le corps du texte

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

coldplay.xixi
Libérer: 2021-01-15 10:20:46
avant
4176 Les gens l'ont consulté

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后条件的数据
应用场景:
	如果两张表有外键关系可以使用内链接,因为通过内链接每一条只能返回单条记录
Copier après la connexion
select * from name n inner join country c on n.id = c.N_ID;
Copier après la connexion
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通过左外连接查询。
Copier après la connexion
select * from name n left join country c on n.id=c.N_ID;
Copier après la connexion
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通过右外连接查询。
Copier après la connexion
select * from name n right join country c on n.id=c.N_ID;
Copier après la connexion
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的全部数据
Copier après la connexion
select * from name n full join country c on n.id=c.N_ID;
Copier après la connexion
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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal