pagehelper / Mybatis-PageHelper

Mybatis通用分页插件
https://mybatis.io
MIT License
12.18k stars 3.13k forks source link

一(table A) 对 多(table B)的关系,怎么让pageinfo里只返回table A的记录总数 #95

Closed bakerchen closed 7 years ago

bakerchen commented 7 years ago

1、有两张表tableA, tableB;是一对多的关系 2、tableB里的linked_id外键关联到tableA的id 3、mybatis mapper xml文件里, A用collection来获取相关联B的arraylist信息

现在的问题是:这种情况下,pagehelper返回pageinfo中total数量是包含对应的B表的信息总数, 有没有办法让total数只返回table A的记录总数。

例如:tableA中有一条记录id=1, tableB中有三条记录的linked_id是关联到tableA中的同一条记录id=1,这种情况下pagehelper返回的pageinfo.total = 3; 我希望只返回tableA的记录总数1

我的sql 如下: select ta., tb.
from tableA ta left join tableB tb on ta.id = tb.linked_id;

我看日志打印出来的是: select count(0) from tableA ta left join tableB tb on ta.id=tb.linked_id

abel533 commented 7 years ago

这种由于一对多会折叠结果导致无法正确分页,需要手动对主表进行分页。

bakerchen commented 7 years ago

好的,谢谢