我有两张这两张桌子:
ID Name ID AuthorID Title
--------- ---------------------
1 John 1 1 Blue
2 Jack 2 1 Yellow
3 Joe 3 2 Blue
4 3 Blue
如何选择包含名为Blue
和Yellow
的图书的作者。我知道我可以查询书籍IN ('Blue', 'Yellow')
的作者,但我很难在最终结果中分组(并要求)这两本书。
答案 0 :(得分:1)
您可以使用聚合和having
:
select authorid
from table2
where title in ('Blue', 'Yellow')
group by authoid
having count(distinct title) = 2;
您可以使用其他join
来引入作者姓名。
答案 1 :(得分:1)
调用第一个表AUTHORS
和第二个表AUTHOR_TITLE
,使用count distinct和IN
的条件。
SELECT A.ID, A.NAME
FROM
AUTHORS A
INNER JOIN
AUTHOR_TITLE B
ON A.ID = B.AUTHORID
AND B.TITLE IN ('BLUE','YELLOW')
GROUP BY A.ID, A.NAME
HAVING COUNT(DISTINCT B.TITLE) = 2;