Mysql 显示计数最大的结果
我需要向用户显示最多的评论。我有两张桌子: 表:用户Mysql 显示计数最大的结果,mysql,count,Mysql,Count,我需要向用户显示最多的评论。我有两张桌子: 表:用户 ID | USERNAME | EMAIL ------------------------------ 1 | USER01 | EMAIL01 2 | USER02 | EMAIL02 3 | USER03 | EMAIL03 4 | USER04 | EMAIL04 ID | AUTHOR | COMMENT -----
ID | USERNAME | EMAIL
------------------------------
1 | USER01 | EMAIL01
2 | USER02 | EMAIL02
3 | USER03 | EMAIL03
4 | USER04 | EMAIL04
ID | AUTHOR | COMMENT
----------------------------------
1 | USER01 | COMMENT...
2 | USER02 | COMMENT...
3 | USER01 | COMMENT...
4 | USER03 | COMMENT...
表:评论
ID | USERNAME | EMAIL
------------------------------
1 | USER01 | EMAIL01
2 | USER02 | EMAIL02
3 | USER03 | EMAIL03
4 | USER04 | EMAIL04
ID | AUTHOR | COMMENT
----------------------------------
1 | USER01 | COMMENT...
2 | USER02 | COMMENT...
3 | USER01 | COMMENT...
4 | USER03 | COMMENT...
在本例中,user01
的注释最多,但假设我必须计算所有注释的数量。同时,我还必须向用户显示存储在用户表中的电子邮件
如何计数并同时检入两个表以返回结果?或者我应该先获取用户信息,然后进行计数?下面的查询处理注释数最多的重复行
SELECT a.userName
FROM Users a
INNER JOIN Comments b
ON a.username = b.author
GROUP BY a.userName
HAVING COUNT(*) =
(
SELECT MAX(totalCount)
FROM
(
SELECT author, COUNT(*) totalCount
FROM comments
GROUP BY author
) a
)
orderby
和LIMIT
SELECT a.userName, COUNT(*) totalCount
FROM Users a
INNER JOIN Comments b
ON a.username = b.author
GROUP BY a.userName
ORDER BY totalCount DESC
LIMIT 1
SELECT a.userName
FROM Users a
INNER JOIN Comments b
ON a.username = b.author
GROUP BY a.userName
HAVING COUNT(*) =
(
SELECT MAX(totalCount)
FROM
(
SELECT author, COUNT(*) totalCount
FROM comments
GROUP BY author
) a
)
orderby
和LIMIT
SELECT a.userName, COUNT(*) totalCount
FROM Users a
INNER JOIN Comments b
ON a.username = b.author
GROUP BY a.userName
ORDER BY totalCount DESC
LIMIT 1