我已经执行了一段代码
SELECT CASE b.ON_LOAN
when 'Y' then
'In Lib'
when 'N' then
(SELECT c.duedate from book_copy a, book b, loan c
where b.isbn = 123456
and a.isbn = b.isbn
and a.book_no = c.book_no)
END AS Availability, a.isbn, a.class_number
FROM book_copy b, book a
where a.isbn = b.isbn and a.isbn = 123456
它返回一个错误,说子查询返回多于一行。我正在尝试获取一本书的可用性。一本书可以有多个副本,由其 book_no 标识。如果副本可用,则应仅返回“在库中”,否则应返回贷款表中的到期日期。例如,如果一本书有三份,两份出,一份在库中,我希望我的查询显示所有三份。我想我缺少一个外部连接。请你澄清一下。
我用于此的表是
book_copy: book_no, isbn, on_loan
loan: student_id, book_no, duedate,datereturned,loan_id
fk: book_no with book_no in book_copy
book: isbn (pk), title, class
谢谢, rk