很抱歉,如果我的措辞非常糟糕。我还没有很好地记住这些条款。
我有以下内容(我无法对其进行任何更改):
书籍(BookID,标题)
作者(BookID,WritID)
Writer(WritID,FirstName,LastName)
我希望能够按标题列出拥有多位作者的书籍,因为作者列出了这样的内容:
Book01,Dude01
Book02,Dude01
Book02,Dude02
我一直在尝试使用COUNT
和HAVING
来获取重复项,JOIN
来连接图书和作者,但我感觉以下是完全关闭。 :(
select Title, BookID, count(*)
from Author
join Books
on Author.BookID=Books.BookID
having count(*) >= 2;
非常感谢任何正确方向的帮助或观点。
答案 0 :(得分:3)
对于聚合函数,请使用Group By子句。
SQL GROUP BY子句可用于SQL SELECT查询,以跨多个记录收集数据,并按一列或多列对结果进行分组。
答案 1 :(得分:2)
您缺少GROUP BY
- 您需要按照您希望在未汇总的结果中看到的所有列进行分组:
select Books.Title, Books.BookID, count(*)
from Author
join Books
on Author.BookID=Books.BookID
group by Books.Title, Books.BookID
having count(*) >= 2;