多表联合查询,分页,排序和分组

 Db.paginate(pageNumber, pageSize, "select lst.user_id userid,usr.name user_name ",

"from moap_task_lst lst left join sys_user usr on usr.login_id lst.user_id left join moap_tasks task  on "+

"task.task_no = lst.task_no where task.task_status = '4' and task.biz_type = '6' and usr.bank_id = ? group by lst.user_id order by total desc",bankId);

这个是我写的查询语句,sql是没有问题的,在Navicat里面能查询出数据

select count(*) from moap_task_lst lst left join sys_user usr on usr.login_id = lst.user_id left join moap_tasks task  on task.task_no = lst.task_no where task.task_status = '4' and task.biz_type = '6' and usr.bank_id = ? group by lst.user_id order by total desc

这个是程序执行的sql,请问多表的分页和分组和排序有其他方法吗

我写的sql和程序执行的sql主要区别在select  和  from之间我需要查询的字段

评论区

JFinal

2019-04-11 11:37

注意看文档, 你的 sql 的最外层有一个 group by,所以要添加第三个参数 isGroupBy 为 true:

Db.paginate(pageNumber, pageSize, true, ....);

zitcen

2019-04-11 11:48

@JFinal 加上true还是不行,我试过了,运行后一样的效果

JFinal

2019-04-11 12:32

@zitcen 看一下文档中的常见问题解决:
https://www.jfinal.com/doc/5-6

zitcen

2019-04-16 16:25

@JFinal 不好意思在次打扰,我用的是jfinal3.4版本的jar包,其中的Db这个类里面没有paginateByFullSql这个方法,请问我应该怎么解决这个问题

JFinal

2019-04-16 22:08

@zitcen 没有这个方法,可以参考一下文档中的常见问题:
https://www.jfinal.com/doc/5-6

主要是要了解出现问题的原因,然后办法自然就会想到了

热门反馈

扫码入社