sql—组合两个表以及如何从一个表中至少查找一次包含两个值的记录

jhdbpxl9  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(302)

假设图书馆中有一个借书表-(loan\u no,member\u no,book\u no)和另一个借书表(book\u no,book\u type,some other details)
我想选择从两个不同图书类别中借出一本书的记录。
例如,如果loan\u no包含一本书,分别来自图书类型“crime”和“scient fiction”,我想选择它-仅此而已。我该怎么办?

SELECT  *
FROM    loan
JOIN    book
ON      book.book_no = loan.book_no
WHERE   <loan_no contains book.book_category = 'SCIENCE FICTION' AND 'CRIME'>

谢谢您。
中国

cdmah0mi

cdmah0mi1#

如果 loan 表中有多行用于给定 loan ,则可以使用聚合:

select l.loan_no
from loan l join
     book b
     using (book_no)
where b.book_category in ('SCIENCE FICTION', 'CRIME')
group by l.loan_no
having count(distinct b.book_category) = 2;

相关问题