开发者社区> 问答> 正文

SQL中left join on and 与 left join on where执行结果不一致?

遇到一问题:left join on and 与 left join on where执行结果不一致?解析原理?问题SQL如下: 1: select * from a left join b on a.id = b.id and a.name = b.name ;

2: select * from a left join b on a.id = b.id where a.name = b.name ;

展开
收起
晓风瑟瑟 2021-10-12 16:52:28 679 0
2 条回答
写回答
取消 提交回答
  • left join on and 与 left join on where在数据库内部算法是有区别的,前者在Oracle内部哈希算法为:Hash join outer,而后者在Oracle内部哈希算法为:Hash join,所以执行结果会不一致

    2021-10-16 15:47:45
    赞同 展开评论 打赏
  • on 与 where是不一样的

    where是过滤,on 是匹配,有优选级

    2021-10-12 18:46:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载