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

发布于 2022-09-06 12:23:06 字数 752 浏览 16 评论 0

公司做共享充电,有一个业务是查询设备的充电频次,查询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,

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

分分钟 2022-09-13 12:23:06

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

mysql-limit-offset.jpg

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文