如何关联多个表,去做查询统计,最终显示,詹总!

比如  用户发总的文章类型统计,超过三张表,user表,a1表,a2表。

现在想实现以下显示:

  用户名,文章1数量,文章2数量

   alex              10            12


这个如何实现,请赐教!

评论区

JFinal

2016-08-18 18:10

这是一个纯 sql 问题,sql 大致这样:
select u.userName, t1.a1Num, t2.a2Num from user as u,
(select count(*) as a1Num from a1 where userId = ?) as t1,
(select count(*) as a2Num from a2 where userId = ?) as t2 where u.id = ?
代码:Db.find(sql, userId, userId, userId);

JFinal

2016-08-18 18:13

如果要一条 sql 统计所有用户,将 userId=? 换成 userId=u.id,并且将最后面的 where u.id=? 去掉即可:
select u.userName, t1.a1Num, t2.a2Num from user as u,
(select count(*) as a1Num from a1 where userId = u.id) as t1,
(select count(*) as a2Num from a2 where userId = u.id) as t2

JFinal

2016-08-18 18:14

当然,你还可以在后面添加 where 控制一下,需要查询的 user 集合:where u.id in(1,2,3,4..)

alexjfinal

2016-08-19 10:14

如果在.net上我可以写相关的统计函数,如 <%=count(userid)%> <%=count1(userid)%> 能否在list 循环中用自定义函数统计? 而且能否各统计数的前三条记录
如 下
用户名:alex count表相关alex文章数12 count1表相关alex文章数22
count1表文章 xxxxxxxx
xxxxxxx
xxxxxxx
count2表文章 xxxxxxxx
xxxxxxx
xxxxxxx
用户名:tom count表相关tom文章数12 count1表相关tom文章数22
count1表文章 xxxxxxxx
xxxxxxx
xxxxxxx
count2表文章 xxxxxxxx
xxxxxxx
xxxxxxx


以上是分上一页,下一页的,有很多用户。

alexjfinal

2016-08-19 10:16

如果在.net上我可以写相关的统计函数,如 <%=count(userid)%> <%=count1(userid)%> 能否在list 循环中用自定义函数统计? 而且能否各统计数的前三条记录
如 下
用户名:alex count表相关alex文章数12 count1表相关alex文章数22
count1表文章 (xxx为文章标题)
xxxxxxxx
xxxxxxx
xxxxxxx
count2表文章
xxxxxxxx
xxxxxxx
xxxxxxx
用户名:tom count表相关tom文章数12 count1表相关tom文章数22
count1表文章 xxxxxxxx
xxxxxxx
xxxxxxx
count2表文章 xxxxxxxx
xxxxxxx
xxxxxxx


以上是分上一页,下一页的,有很多用户。

热门反馈

扫码入社