SQL中左连接on and条件和where条件执行先后顺序
执行顺序:先执行on and条件,再执行where条件
具体是:首先根据on and条件过滤出满足条件的右侧表记录,然后根据关联字段,左侧表再与过滤出的右侧表记录进行连接,
满足关联字段相等,则返回左侧表和右侧表字段信息;若不满足,则返回左侧表字段信息,右侧表字段则显示NULL。
连接出的结果则存入临时表中。最后where条件是对临时表中的数据进行过滤。
左连接:Left join,以左侧表为主,不管on条件是否满足条件,左侧表的所有记录都会返回。
换句说:on and后面的条件对左侧表没有过滤作用,即使加上对左侧表的过滤,也不起作用。
on后面的条件对右侧表的过滤起作用。where条件则对左连接后的临时表数据进行筛选。
以例子说明:
select * from A left join B
on A.ID = B.ID and B.NAME = '连接' and A.NAME = ‘左连接’
where NAME = '左连接'
on and后面的条件:B.NAME对B表有过滤作用,A.NAME对A表不起过滤作用
where后面的条件:则是对左连接出的临时表数据进行过滤
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步