纪录: INNER JOIN,LEFT JOIN 之解惑

本文详细解释了MySQL中的内连接(INNER JOIN)和左连接(LEFT JOIN),包括它们的定义、语法以及如何使用它们进行数据统计。通过具体例子展示了如何在查询中应用这两种连接类型,特别关注于如何处理数据缺失情况。

Mysql Inner join,left join


做数据统计的时候,用到了inner join和left join,发现对这两个概念有些模糊,决定纪录之。

TABLE

tbl_1
id name
1 allen
2 lewis
3 hellen
4 john
5 kerr
tbl_2
id age
1 11
2 13
3 14

INNER JOIN

inner join即等值链接

//inner join 类似于
select tbl_1.id,tbl_1.name from tbl_1,tbl_2 where tbl_1.id=tbl_2.id

//inner join 的写法
select tbl_1.id,tbl_1.name from tbl_1 inner join tbl_2 on tbl_1.id=tbl_2.id

以上sql语句的查询结果是一样的

left join

left join是已左表为基准。左表数据会全部显示出来,右表只显示符合搜索条件的数据,不足的部分以Null显示

//e.p
select * from tbl_1 left join tbl_2 on tbl_1.id=tbl_2.id

以上语句查出的结果
aid name bid age
1 allen 1 11
2 lewis 2 13
3 hellen 3 14
4 john null null
5 kerr null null

查询a表存在,但是b表不存在的
在语句中加入 b.id is null

select * from tbl_1 left join tbl_2 on a.id=b.id where b.id is NULL

条件语句on,where优先执行on 之后的条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值