我正在努力把这个问题弄对。我得到了返回的表来显示昵称和两个相关的值。这些表是:用户(昵称、姓名等)postsauth(昵称、posted等)postcomm(昵称、comid等)
如果numposts&numcomments中返回的两个值都为null(也就是说,如果它们没有评论或创建一个post),我试图让它不包含用户。我不知道该怎么做。代码如下
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;
这就产生了
Nickname | numPosts | numComments
bob 1 2
sally 2 1
tommy NULL NULL
etc.......
我不想 tommy
待显示。
3条答案
按热度按时间2vuwiymt1#
使用where子句并设置notnull条件
olqngx592#
您可以通过此条件在页面中显示时控制它。
c86crjj03#
只需添加
WHERE pc.nickname IS NOT NULL OR pa.nickname IS NOT NULL
到查询,即。这将排除在postauthors和postcomments中都没有值的任何用户。