因为数据问题第二个会报错。数据问题没什么,主要是有一个疑问的地方,所以看了一下执行计划。两个查询语句只是把主表和join表的位置换了一下。(第一个图是的查询语句是不会报错的,但是不知道为什么没有查询链接的表,也没有执行hash匹配)。
真的不是很懂,希望大神门指点,谢谢了!
LZ,首先你这两个执行计划写的SQL语句存在不同的地方。LEFTJOIN是以左边的表为基础表的。
至于所说的【所以看了一下执行计划。两个查询语句只是把主表和join表的位置换了一下。(第一个图是的查询语句是不会报错的,但是不知道为什么没有查询链接的表,也没有执行hash匹配)。】
个人认为应该是左右两边的数据数量不同和SELECT中显示的列名存在差异。如果改成
select*fromaleftjoinbona.id=b.id 和select*frombleftjoinaona.id=b.id那么两者的执行计划则完全相同了。
不知道是否正确,如有问题欢迎指正!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。