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

向我们展示你的尝试吗?向我们展示你的尝试吗?+1。使用正确的连接语法绝对值得一试。+1。使用正确的连接语法绝对值得一试。