Mysql计数没有重复

时间:2014-02-28 11:24:07

标签: mysql count distinct

我的数据库中有2个表。 第一个是author包含(int author_id, text name_of_author)。 第二个是book包含(int book_id, int author_id, text name_of_book, text genre)。 它们与author_id;

相关

我正在尝试查询,这将为我提供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;

但它给了我错误的结果。

2 个答案:

答案 0 :(得分:1)

如果您只需要为每种类型的作者计数,这个简单的查询是否有效?

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

答案 1 :(得分: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;

如果它不起作用,请发布数据模型以及从DB获得的错误或结果。