Mysql显示拥有1本以上书籍的作者的书籍标题

时间:2015-10-30 12:38:17

标签: mysql

好的,我有一张Books的表格,每本书都有2 fileds现在很有意思:Title& Author,如何显示拥有1本以上图书的作者的图书标题?我试过了

SELECT Title, Author, COUNT(Author) AS Books FROM BOOK 
GROUP BY Author HAVING COUNT(Author) >= 2;

但这只给了我每位作者1个作者,作者和作者所拥有的书籍。 e.g

The Sun Also Rises | Hemingway | 2
Foundation         | Asimov    | 2 

等等。

如何解决?可以使用Subquerys

3 个答案:

答案 0 :(得分:3)

像这样使用group_concat: -

SELECT group_concat(Title) as Title, Author, COUNT(Author) AS Books 
FROM BOOK GROUP BY Author HAVING COUNT(Author) >= 2;

Run this query

答案 1 :(得分:1)

您可以在子查询中确定至少有2本书的作者,然后获取他们的书籍列表:

SELECT book.Title, book.Author
FROM book
INNER JOIN (SELECT Author FROM BOOK GROUP BY Author HAVING COUNT(Author) >= 2) t
ON book.Author=t.Author;

答案 2 :(得分:0)

SELECT b.title,b.author,c.cnt FROM books AS b INNER JOIN
(SELECT author,COUNT(*) AS cnt FROM books GROUP BY author) AS c
ON b.author = c.author
WHERE c.cnt > 1;

适用于任何数据库系统,而不仅仅是mysql。

相关问题