2014-11-02 32 views
0

我想在我的MySQL查詢中使用count來計算具有匹配列的行的數量,並且查詢正在工作,但是當select查詢count在返回正在使用沒有行,計數值仍返回0,這樣的查詢將返回一個空行,除了它具有數列中的0如果沒有找到行,MySQL make count不返回任何內容

這是我的查詢:

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的結果。

有沒有人有任何想法如何實現這一目標?我迷路了。

感謝您提前提供任何幫助。

+1

你忘了發佈'group by'還是你沒有? – 2014-11-02 02:24:00

+0

@ gloomy.penguin我沒有一個。我是不是該?沒有它,查詢工作正常。 – Qub1 2014-11-02 14:18:14

+1

這取決於你要做什麼。如果你現在得到你想要的結果,那麼不要擔心。如果您需要每個用戶或某物的計數,並且結果集中有多個用戶,那麼您需要添加它。 – 2014-11-02 14:27:49

回答

1

地址:

HAVING post_count > 0 

到查詢的末尾。

如果有任何匹配,它將返回1行,並且post_count將包含不同帖子的數量,如果沒有匹配,則返回0行。

+0

謝謝,這個作品很棒:) – Qub1 2014-11-02 14:17:36

相關問題