关于left join的几点思考和总结

本文详细解析了SQL中的Left Join操作:如何通过指定条件展示左表的所有记录及右表匹配的记录,当右表不存在匹配项时则显示NULL。讨论了Left Join与Inner Join的区别,并解释了ON和WHERE子句在联接查询中的作用。

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

关于left join的几点思考和总结

select * from t1 left join t2 on t1.id = t2.tid and t2.num = 100
where 1=1 and t1.name = 'xxxx'    
  1. on t1.id = t2.tid是表的连接条件

  2. left join会显示所有t1的数据行,t2数据为没有的就显示null

  3. 如果一个t1.id 对应多个t2.tid,那么联表中的t1部分会有重复的数据

  4. on后面的条件是联合查询条件,on后的and作用域也属于on

  5. 这里是left join,所以 t2.num = 100 让联表中 t1全部查出来,t2部分只显示num =100 的那部分数据,其他行数据为null。

  6. 如果是inner join,满足on后面的条件,联表的整行数据才会显示出来,所以也可以把条件放到where后面。

  7. where 1=1 不能去掉,否则会认为是联合查询时的条件,where后面就是对整个联表再进行过滤,会改变联表的显示行数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值