SQL之left join、right join、inner join

本文详细介绍了SQL中的不同类型的连接查询,包括内连接、左连接和右连接,并通过具体实例展示了每种连接方式的特点及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建表(Create table):

                               

CREATE TABLE A ( Id INT PRIMARY KEY, Name VARCHAR(20) NOT NULL);

CREATE TABLE B ( Id INT PRIMARY KEY, Name VARCHAR(20) NOT NULL);

                插入数据(Insert data):

                               

insert into A(id,name) values(1,'Mary1');

insert into A(id,name) values(2,'Mary2');

insert into A(id,name) values(3,'Mary3');

insert into B(id,name) values(1,'Tom1');

insert into B(id,name) values(2,'Tom2');

insert into B(id,name) values(4,'Tom4');

 

                查询a表(Select from a):

                               

Select * from a;

                               

                               

                查询b表(Select from b):

                               

Select * from b;

                               

                               

内连接(Inner join,自然连接): 内连接只有两个表数据完全匹配才显示查询结果(个人觉得,和不用没什么区别)

               

Select a.*,b.* from a inner join b where a.id = b.id;

Select a.*, b.* from a, b where a.id = b.id;

 

                            

                左连接(Left join): 显示左表所有数据,只有右表数据和左表匹配是才显示右表数据,如果左表数据在右表中没有匹配的行,用null显示(如下,id = 3)

                               

Select a.*,b.* from a left join b on a.id = b.id;

 

右连接(Right join): 显示右表所有数据,只有左表数据和右表匹配时,才显示左表数据,如果右表数据在左表中没有匹配的行,用null显示(如下,id=4),跟左连接相反

               

Select a.*,b.* from a right join b on a.id=b.id;

 

转载于:https://www.cnblogs.com/Springmoon-venn/p/5459791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值