我的数据库中有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;
但它给了我错误的结果。
答案 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获得的错误或结果。