当前使用版本(必填,否则不予处理)
3.5.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
mapper中自己写了一个多表的左连接,对其进行分页查询。
重现步骤(如果有就写完整)
mapper调用:
pagenum=1
pagesize=5
其他参数都是空的
@Override
public TableDataInfobiz_activity_item bai
==> Parameters:
<== Columns: total
<== Row: 15
<== Total: 1
==> Preparing: SELECT bai.activity_item_id, bai.title, bas.activity_id, ba.title ba_title, ba.title_type, ba.attract_start_time, ba.attract_end_time, ba.show_start_time, ba.show_end_time FROM biz_activity_item bai LEFT JOIN biz_activity ba ON bai.activity_item_id = ba.activity_item_id LEFT JOIN biz_activity_shop bas ON ba.activity_id = bas.activity_id ORDER BY bai.activity_item_id DESC LIMIT ?
==> Parameters: 5(Long)
<== Columns: activity_item_id, title, activity_id, ba_title, title_type, attract_start_time, attract_end_time, show_start_time, show_end_time
<== Row: 16, 【箱包】行业日常活动, null, 12.1-12.7手表, 平台促销活动, 2021-11-24 00:00:00, 2121-11-30 23:59:59, 2021-12-01 00:00:00, 2121-12-07 23:59:59
<== Row: 16, 【箱包】行业日常活动, null, 12.15-12.21手表, 平台促销活动, 2021-12-08 00:00:00, 2121-12-14 23:59:59, 2021-12-15 00:00:00, 2121-12-21 23:59:59
<== Row: 16, 【箱包】行业日常活动, null, 12.22-12.28手表, 平台促销活动, 2021-12-22 00:00:00, 2121-12-28 23:59:59, 2021-12-29 00:00:00, 2121-12-31 23:59:59
<== Row: 16, 【箱包】行业日常活动, null, 12.22-12.28手表, 平台促销活动, 2021-12-15 00:00:00, 2121-12-21 23:59:59, 2021-12-22 00:00:00, 2121-12-28 23:59:59
<== Row: 16, 【箱包】行业日常活动, null, 12.8-12.14手表, 平台促销活动, 2021-12-01 00:00:00, 2121-12-07 23:59:59, 2021-12-08 00:00:00, 2121-12-14 23:59:59
<== Total: 5
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1db29726]
报错信息
返回total总数的是对的,但是返回的records的个数不对。本来应该以biz_activity_item分页,但是返回的records则以biz_activity分页了。这两个表是一对多关系,求解决,或者提供一种推荐的解决方案,谢谢
Comment From: miemieYaho
自己写分页,limit主表再join其他表
Comment From: mantoudaxiao
自己写分页,limit主表再join其他表
意思是在方法的业务逻辑处理?多表关联的sql解决不了这个问题是吗?
Comment From: fyakm
先查询主表limit,再join关联表