小编Mal*_*eir的帖子

SQL:查询两个单独的表并返回计数值,然后按两个返回值进行分组

我正在努力让这个查询正确.我有返回的表来显示昵称和两个相关的值.表是:用户(昵称,名称等)postsAuth(昵称,postID等)postComm(昵称,comID等)

我试图让它包括用户如果numPosts和numComments中返回的值都为NULL(例如,如果他们没有评论或创建帖子).我不确定如何让这个工作.代码如下

SELECT u.nickname, pa.numPosts, pc.numComments
FROM Users u
LEFT JOIN
(SELECT pa.nickname, COUNT(pa.nickname) AS numPosts
    FROM postAuthors pa
    GROUP BY pa.nickname
)pa
ON u.nickname = pa.nickname LEFT JOIN 
(SELECT pc.nickname, COUNT(pc.nickname) AS numComments
    FROM postComments pc
    GROUP BY pc.nickname
)pc
ON u.nickname = pc.nickname;
Run Code Online (Sandbox Code Playgroud)

这创造了

Nickname | numPosts | numComments

bob              1             2
sally            2             1
tommy         NULL          NULL
 etc.......
Run Code Online (Sandbox Code Playgroud)

我不想tommy被展示.

mysql sql join group-by

1
推荐指数
1
解决办法
61
查看次数

标签 统计

group-by ×1

join ×1

mysql ×1

sql ×1