关联多表,order by 加limit分页,数据重复的问题

公司做共享充电,有一个业务是查询设备的充电频次,查询SQL如下。

SELECT b.title,
       a.device_id,
       a.user_id,
       COUNT(c.device_id) AS times,
       b.address,
       a.remark
  FROM(
SELECT device_id, user_id, remark, address_id
  FROM device_manage
 WHERE user_id =100020) a
  INNER JOIN device_address b ON a.address_id= b.id and b.title like '%澜庭大酒店%' 
  LEFT JOIN charge_bill c ON a.device_id= c.device_id
   and pay_time>= '2017-12-27'
   and pay_time<'2018-01-26'
 GROUP BY a.device_id 
 ORDER BY times DESC limit 12,10 

以上是原SQL
问题来了,当times相同的时候,数据就会开始重复,如上limit 12,10和limit 13,10数据有很多是重复的,网上查了下,order by再加一个字段依然无法解决问题,曾经order by times,c.id,order by times,a.device_id,order by times,c.device_id,

有大佬们知道怎么解决吗?

阅读 5.7k
1 个回答

是你对limit没有理解?!
limit后面两个数字,offsetcount, 意思分别的偏移数量
limit 12,10 和limit 13,10 得有九条重复的吧?

mysql-limit-offset.jpg

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题