left join on 后面 and 用法
发布日期:2022-09-10 02:29:03
浏览次数:4
分类:博客文章
本文共 892 字,大约阅读时间需要 2 分钟。
今天查数据,使用 left join , 想着提前过滤下数据性能会好, on 后面多加了几个 and 条件, 发现数据并不是预想的结果,遂搜索一番,发现之前对 on 后面的条件一直有一个大的误区。
MYSQL 版本: 5.7.22
T1 表 T2 表
SQL 1:
select * from T1 t1 left join T2 t2 on t1.id = t2.id and t2.EnName = 'Mark';
结果为:
SQL 2:
select * from T1 t1 left join T2 t2 on t1.id = t2.id and t1.name = '张三';
结果为:
结论: 当使用 left join(或 right join) 的时候, 主表的数据并不会因为 on 后面的过滤条件而有所改变, on 后面的过滤条件只会影响 关联从表的数据。
如果想对表结果数据产生影响, 使用 inner join 或者 在最后使用 where 进行过滤。
- inner join :
-- sql1select * from T1 t1 inner join T2 t2 on t1.id = t2.id and t1.name = '张三';-- sql2select * from T1 t1 inner join T2 t2 on t1.id = t2.id and t2.EnName = 'Mark';
sql1 : sql2:
- where
select * from T1 t1 left join T2 t2 on t1.id = t2.id where t1.name = '张三';
left join(right join) 是在 on 过滤后 join , 然后进行追加, 相对来说 on 提前过滤数据, 减少了笛卡尔积 的数据量,但是之前不知道 过滤后还要进行追加,后面使用时 需注意这点。
转载地址:https://www.cnblogs.com/cgsdg/p/16426658.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月10日 22时11分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
华为员工离职心声:菊厂15年退休,感恩,让我实现了财务自由!
2019-04-29
春晚上的“拓荒牛”
2019-04-29
嵌入式驱动自学者的亲身感受,有什么建议?
2019-04-29
华为被超越!这家公司成中国最大智能手机制造商,不是小米!
2019-04-29
腾讯机器狗,站起来了!
2019-04-29
我用自己创造的深度学习框架进入腾讯,爽!
2019-04-29
芯片为什么持续缺货?
2019-04-29
又涨了?2021 年 3 月程序员工资统计新出炉
2019-04-29
初入行的C++程序员,如何快速摆脱CRUD阶段?
2019-04-29
研究生跟了一个很棒的导师是种怎样的体验?
2019-04-29
学会扶墙的机器人:没有什么能让我倒下!
2019-04-29
美国无人机在火星首飞成功,创造历史,3米飞行高度悬停30秒
2019-04-29
单片机的几种数字滤波算法
2019-04-29
用单片机控制导弹?
2019-04-29
各种滤波器合集!
2019-04-29
国产CPU深度研究报告(干货,110页)
2019-04-29
在电路中,耦合是什么?有哪些方式?
2019-04-29
变局之际,聊聊物联网的过去、现在和未来
2019-04-29
缺货涨价很久的MCU的国产和国外厂家汇总!(80家)
2019-04-29
单片机6年想转嵌入式Linux ,不知如何下手?
2019-04-29