mysql中left join right join inner join用法

本文通过创建两个测试表并插入数据的方式,详细介绍了SQL中的三种连接查询:左连接(left join)、右连接(right join)和内连接(inner join)的使用方法及区别。左连接以左表为基础展示所有记录,右表按条件匹配;右连接则相反;内连接仅展示两边表中匹配的记录。

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

1.创建表test1,test2,插入测试数据

#创建表sql语句#
CREATE TABLE test1(
    id int(10) AUTO_INCREMENT PRIMARY KEY, 
    name char(20) 
 ) 
CREATE TABLE test2(
    bid int(10) AUTO_INCREMENT PRIMARY KEY, 
    mobile char(20) 
 ) 
#插入测试数据sql语句#
INSERT INTO test1 VALUES ( 1, '小明' ) , ( 2, '小强' ) , ( 3, '小王' ) , ( 4, '小张' ) , ( 5, '小东' );
INSERT INTO test2 VALUES ( 1, '13625878968' ) , ( 2, '13582687245' ) , ( 3, '13802598746' ) , ( 4, '15025893698' ) , ( 8, '13582584789' );

2.测试left join,right join,inner join用法 

#left join(左连接)#
select a.*,b.* from test1 as a left join test2 as b on a.id=b.bid
结果如图
  


影响行数为5行,左表(test1)的记录将会全部表示出来,而右表(test2)只会显示符合搜索条件的记录(例子中为: test1.id = test2.bid). 
test2表记录不足的地方均为NULL
#right join(右连接)#
select a.*,b.* from test1 as a right join test2 as b on a.id=b.bid
结果如图
  
影响行数为5行,与left join的结果刚好相反,这次是以右表(test2)为基础的,test1表不足的地方用NULL填充
#inner join(内连接)#
select a.*,b.* from test1 as a inner join test2 as b on a.id=b.bid
结果如图
  
影响行数为4行,这里只显示出了 test1.id = test2.bid的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录,精确匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值