我试图在我的MySQL查询中使用计数来计算具有匹配列的行数,并且查询正在运行,但是当使用select查询计数时,返回没有行, count值仍然返回0,因此查询将返回一个空行,除了count列为0。
这是我的疑问:
SELECT
forum_threads_forums.id,
forum_threads.title,
forum_threads.description,
forum_threads.views,
COUNT(DISTINCT forum_posts_threads.post_id) AS post_count,
users.id AS user_id,
users.username AS user_username
FROM
forum_threads
INNER JOIN
forum_threads_forums
ON
forum_threads.id=forum_threads_forums.thread_id
AND
forum_threads_forums.forum_id=:forum_id
LEFT OUTER JOIN
forum_posts_threads
ON
forum_posts_threads.thread_id=forum_threads_forums.thread_id
INNER JOIN
users
ON
forum_threads.user_id=users.id
当选择查询没有返回任何行时,计数仍然存在。所以我得到了这样的结果:
id title description views post_count user_id user_username
0
我希望它什么都不返回,这样我就可以用PHP可靠地计算结果。
有没有人知道如何实现这个目标?我输了。
感谢您提前提供任何帮助。
答案 0 :(得分:2)
添加:
HAVING post_count > 0
到查询结尾。
如果有任何匹配,它将返回1行,post_count
将包含不同帖子的数量,如果没有匹配则为0行。