- 一对多分页的SQL到底应该怎么写?
- Mybatis关联结果查询分页方法
之前用Jpa, 一对多分页问题不好解决, 后来换成 mybatis, 使用 pagehelper 分页,却发现记录数不对 是因为:连表查询后记录数不再是主表的数量,而是所有主表数据对应的关联数量,这时候分页自然不对
正确的思路是应该先对主表进行分页,再关联从表进行查询**
SELECT
p.id,
p.title,
p.journal,
p.issue_date,
u.id AS uid,
u.NAME,
pd.num,
v.STATUS AS v_status,
v.result AS v_result
FROM
( SELECT id, title, journal, issue_date FROM paper ORDER BY id DESC LIMIT #{offset}, #{size} ) p
LEFT JOIN paper_detail pd ON p.id = pd.paper_id
LEFT JOIN `user` u ON pd.user_id = u.id
LEFT JOIN vote v ON v.pid = p.id