我需要解决这个以前从未遇到过的问题。我需要让读者借用表Book中的所有书籍。
谢谢您的帮助。
表格:
Reader (id, name, address, birthdate, contact)
Book (isbn, title, publisher, recomended_price)
BookCopy (copy_no, price, year, Book_isbn)
BookLoans (id, date_of_borrow, date_of_return, Reader_id, BookCopy_copy_no)
答案 0 :(得分:0)
可以请您检查此脚本的工作与否。如果没有,请为每个表和您的预期输出添加一些示例数据。
SELECT R.ID,R.name,COUNT(DISTINCT BC.Book_isbn)
FROM BookLoans BL
INNER JOIN BookCopy BC ON BL.BookCopy_copy_no = BC.copy_no
INNER JOIN Reader R on BL.Reader_id = R.id
GROUP BY R.ID,R.name
HAVING COUNT(DISTINCT BC.Book_isbn) = (SELECT COUNT(DISTINCT isbn) FROM Book)
答案 1 :(得分:0)
您可以尝试以下方法:
SELECT rd.id
FROM Reader rd,
Book bk
LEFT OUTER JOIN BookLoans bl
ON bl.Reader_id = rd.id
LEFT OUTER JOIN BookCopy bc
ON bc.copy_no = bl.BookCopy_copy_no
AND bc.Book_isbn = bk.isbn
GROUP BY rd.id
HAVING COUNT(bk.isbn) - COUNT(bc.Book_isbn) = 0
…但这绝对不是开始学习的最简单查询。