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

最近在项目中遇到,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的查询优化 对于左连接的表 先查出在依次对主表进行对比,这样就可以做到左连接的表只查询一次。避免多次去扫描连接的表。所以顺序一般都会乱,最后只需做个排序就行

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
左连接是一种连接查询的方式,它可以根据指定的条件将左表的所有数据和右表符合条件的数据进行关联。在左连接进行条件查询时,可以使用以下两种方式: 1. 返回左表所有数据:可以使用左连接查询的方式,将左表的所有数据都返回,无论是否符合条件。这可以通过在左连接查询的条件中添加左表的筛选条件来实现。例如:使用"where"子句来添加条件,如"where oilDaily.wellId='庆11-001'"。同时,可以使用"group by"子句对查询结果进行分组,以及"order by"子句对查询结果进行排序。具体的查询语句可以参考引用中的第一个示例。 2. 返回符合条件的数据:可以直接在左连接查询的"where"子句中添加条件,用于筛选符合条件的数据。这样只会返回满足条件的数据,而不包括左表的所有数据。例如:使用"where"子句来添加条件,如"where oilDaily.wellId='庆11-001'"。同时,可以使用"group by"子句对查询结果进行分组,以及"order by"子句对查询结果进行排序。具体的查询语句可以参考引用中的第二个示例。 总结起来,左连接的条件查询可以通过在左连接查询的条件中添加左表的筛选条件来实现,从而返回所需的数据。<span class="em">1</span> #### 引用[.reference_title] - *1* [mysql左连接查询时多条件的注意事项](https://blog.csdn.net/qq_43753724/article/details/114890068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值