关于左连接查询出现排序问题

  • Post author:
  • Post category:其他


最近在项目中遇到,limit 分页查询,查看最后一条记录时出现和预想的结果不一样的情况,本身是应该出现主表的最后几条数据,但是并没有。出现了中间的顺序。

经过自己多次的检查最后不要 limit 查询的结果大吃一惊,顺序全是乱的。

sql 片段
from c_customer_coupon cc 
left join wp_coupon w on w.id = cc.w_id 
left join c_customer c on c.id = cc.c_id 
left join com_dictionary d on d.id = c.group_id 

最后结果集

120	21	2	0	2019-03-11 11:25:58	2019-03-11 11:25:58	董		满21	2018-10-29 00:00:00	2018-11-12 00:00:00	21.00	4.10	0	默认组
122	18	2	0	2019-03-11 20:06:20	2019-03-11 20:06:20	王		满21	2018-10-29 00:00:00	2018-11-12 00:00:00	21.00	4.10	11	测试组啊
123	18	2	0	2019-03-11 20:06:21	2019-03-11 20:06:21	王		满21	2018-10-29 00:00:00	2018-11-12 00:00:00	21.00	4.10	11	测试组啊
31	16	5	0	2019-01-08 17:07:33	2019-01-08 17:07:33	蔡		满34元			34.00	1.11	0	默认组
72	39	5	0	2019-01-17 15:36:00	2019-01-17 15:36:00	林		满34元			34.00	1.11	0	默认组
81	40	5	0	2019-01-17 16:49:35	2019-01-17 16:49:35	徐		满34元			34.00	1.11	0	默认组

其实也不完全是无序的,排序是先根据 wp_coupon  进行排序,之后再根据查找的数据进行分别排序,为什么会这么做呢,这个主意是mysql的查询优化 对于左连接的表 先查出在依次对主表进行对比,这样就可以做到左连接的表只查询一次。避免多次去扫描连接的表。所以顺序一般都会乱,最后只需做个排序就行



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