2014-02-28 95 views
1

我必須在我的數據庫2表。 首先是author包含(int author_id, text name_of_author)。 第二個是book包含(int book_id, int author_id, text name_of_book, text genre)。 他們通過author_id關聯;Mysql計數沒有重複

我試圖得到一個查詢,這將給我列出genre沒有重複,以及寫在這genre作者的數量。

它應該是這個樣子:

GENRE NAME_OF_AUTHERS 
    novel  12 
    poems  4 
    fantasy  20 
    ...   .. 
etc.. 

我嘗試做這樣的事情:

SELECT DISTINCT A.GENRE, COUNT(B.NAME_OF_AUTHOR) FROM BOOK AS A 
LEFT JOIN AUTHOR AS B 
ON A.AUTHOR_ID = B.AUTHOR.ID; 

但它給了我錯誤的結果。

+0

那麼...你會得到什麼結果? :) – Goot

+1

@ user3364458,我認爲你在表格格式中犯了一些錯誤,你會給出一個像name_of_authers這樣的名字。但是,我認爲no_of_authers。 – jmail

回答

1

如果您只需要爲每個流派統計作者數,那麼這個簡單的查詢是不是工作?

mysql> select count(author_id), genre from boook group by genre; 
+0

您的解決方案更簡單.. – oki

+0

雅它也工作...它似乎很簡單.. – next2u

0

嘗試

SELECT 
    COUNT(A.NAME_OF_AUTHOR), 
    B.GENRE FROM AUTHOR AS A 
LEFT OUTER JOIN 
    BOOK AS B 
ON 
    A.AUTHOR_ID = B.AUTHOR.ID 
GROUP BY 
    B.GENRE; 

如果它不工作,發佈數據模型和錯誤或導致你從數據庫得到。

+0

謝謝你,這正是我想要的。) – oki

+0

爲你而高興。最後一步:https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – sdespont

+1

這是我的第一篇文章,所以我會牢記.. – oki