两张不同表结构的翻页

需求:

后台查询出两张表的数据,按分页显示。每页显示10,20等

问题:两张表的结构不同,但其中有些字段名和类型相同。大致上,表A的字段是包含表B字段,而后台想要的显示结果是基本以B表的字段为准。


bug产生原由:

代码上:

model.addAttribute("page", xx.findPage(xxx));

model.addAttribute("page1", xxxx.findPage(xxxx));

页面上:
[#list page.content as item]
[/#list]
[#list page1.content as item]
[/#list]
如果我想每页显示10条数据,则会从page获取10条数据,再从page1获取10条数据(假设page,page1中的数据足够多),也就是最后每次显示了20条。。。
解决的方式:(UNION ALL)

UNION ALL 解析(引用)
而我所需要的是取表里相同的(或者说是相同类型)的字段。实际项目中,使用JPA里通过以下SQL语句进行查询,本地测试可用。若有不当,请指正。
SELECT SUM(c.amount) AS amount,m.id AS memberId, m.userName AS userName, m.name AS NAME,c.paidDate ,
CASE WHEN c.status = 1 THEN NULL END status 
FROM C c,Member m 
WHERE c.member_id = m.id AND c.type = 0 AND  c.status = 1 GROUP BY c.member_id   
UNION ALL 
( SELECT cp.paidAmount AS amount, cp.member_id AS memberId,m.userName,m.name AS NAME,cp.paidDate, cp.status 
FROM Cp cp ,Member m WHERE cp.member_id = m.id )

补充:CASE 语法:CASE WHEN c.status = 1 THEN NULL END 字段名

之后model.addAttribute("page", xx.findPage(xxx)); (findPage()的返回类型,我设置为Page<Object>)

[#list page.content as item]
   ${item.amount}
[/#list]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值