oracle 左连接(left join) 排序问题

项目环境:linux、tomcat8.5、SSM框架、oracle11g

项目中一个列表查询,使用了左连接(left join),类似这样:

select * from A left join B on A.xx=B.xx

(A是个视图,视图内是有order by的)

在PL/SQL中查询的结果集排序同A表,但项目部署到服务器后,排序却乱了,确认A表使用了order by,排序无问题,那么可能问题就出在left join了,网上查了查,大概知道了,左连接后,如果没有强制排序,那么默认是先按B表排序,再按A表倒序

如果想默认按A表排序,可以在on后面加上一个条件“1=1”

select * from A left join B on 1=1 and A.xx=B.xx

试了下,确实管用,但原理未明,网上找了下也没找到更多相关信息

这里写出来给遇到同样问题的人,希望有所帮助,也希望有明白原理的大神,看到后可以留言说明,万分感谢!

最后附上解决我问题的帖子:http://www.itpub.net/forum.php?mod=viewthr…


版权声明:本文为weixin_44817260原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。