2013-10-21 108 views
0

所以我有如下表:MySQL的 - 顯示所有結果,包括0結果

文章

  • 的article_id

評論

  • COMMENT_ID
  • 的article_id

我想要做的是搜索的所有文章,儘管有或沒有意見,顯示文章的ID和多少評論它。

想象一下,我有兩篇文章,只是第一篇文章有​​評論。我無法做出一個查詢,顯示我和他們的評論編號。

編輯1:

我提出以下查詢讀取響應後,我幾乎沒有!只有一個問題。相反,越來越0時,文章沒有意見的,我得到1

SELECT *,COUNT(a.article_id)從第一個LEFT JOIN作爲C對a.article_id = c.article_id GROUP BY評論一.article_id;

編輯2:

一個簡單的錯誤。我將「COUNT(a.article_id)」更改爲「COUNT(C.article_id)」。非常明顯! :)感謝您的幫助的人;)

SELECT *,COUNT(c.article_id)從第一個LEFT JOIN作爲C對a.article_id = c.article_id GROUP BY a.article_id評論;

+0

使用左連接。應該管用 。 – RadAl

+0

我不知道如何使用左連接:/我已經嘗試過使用它,但我總是得到一些錯誤... :( – Th3lmuu90

回答

2

試試這個:

SELECT * FROM Article as a INNER JOIN Comment as c ON a.article_id = c.article_id; 
+0

我收到所有評論和含有這些評論的文章。沒有更多... – Th3lmuu90

+0

我標記爲正確的,因爲它是更接近我想要的答案:)我只需要做一些改變。謝謝! – Th3lmuu90

2

你想

SELECT 
    IFNULL(COUNT(c.comment_id),0) AS 'Comment Count' , 
    a.article_id 
FROM 
    article a 
LEFT JOIN 
    comment c 
    ON c.article_id 

什麼我在這裏做的是使用MySQL的LEFT JOIN的評語表與之比較的項目表中(我們的)。在c.article_ida.article_id之間有匹配的地方,我們獲取數據。

+0

計數將永遠不會返回NULL,如果沒有行發現,它將返回0 –

+0

不是真的,而是謝謝。 – Th3lmuu90

1

嘗試LEFT JOIN

Select 
article_id, 
count(comment_id) 
from 
article a 
LEFT JOIN comment c on (a.article_id=c.article_id) 
GROUP BY article_id 
+0

我收到了幾個錯誤,但我無法更正它們:/ – Th3lmuu90