【发布时间】:2019-11-03 04:44:35
【问题描述】:
所以我遇到了一个问题,我想获得超过两位作者的书籍。我是 T-SQL 的新手,所以我还不太懂。。
我的桌子是这样的
书桌:
BOOK
---------------
book_id | title
---------------
1 | A
2 | B
作者表:
AUTHOR
----------------
author_id | name
----------------
1 | Nick
2 | Clem
3 | John
图书作者表:
BOOK_AUTHOR
--------------------
book_id | author_id
--------------------
1 | 1
1 | 2
2 | 3
所以,正如您所看到的,我想要的预期输出是这样的:
Author_id | title | author_name
------------------------------------------
1 | A | Nick
2 | A | Clem
这是我正在执行的 SQL 查询:
SELECT a.Id, a.name, b.title, count(ba.idBook)
FROM BookAuthors as ba
JOIN Author as a
ON ba.IdAuthor = a.Id
JOIN book as b
ON ba.idBook = b.id
GROUP BY a.Id, a.name, b.title
HAVING count(ba.idBook) > 1
提前谢谢各位!
【问题讨论】:
-
更改
HAVING子句中的数字。> 0表示一位作者符合条件。你想要的不止一个。 -
已编辑:我已将其设置为 > 1 但输出为空白
-
这是一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。