私が試してみました
select title
from BOOKS B, AUTHOR A, LOANS U
where a.author_id = b.author_id
and not B.book_id = U.book_id
order by A.name
と
select title
from BOOKS B, AUTHOR A, LOANS U
where b.author_id = a.author_id
and not b.book_id in (select u.book_id from LOANS)
order by A.name, b.title
必要なのは、サブクエリの結果だけですselect u.book_id from LOANS
基本的に、テーブル LOANS には、図書館から貸与された book_id のリストが含まれています。
まだ借りていない book_id が必要です。次に、著者の名前でアルファベット順に並べ替える必要があります(したがって、order by A.name
)
注: 本を含むテーブルには、author_id のみが含まれます。著者の名前を取得するには、その author_id をテーブル AUTHOR の ID と比較する必要があります。
私が間違っていること、または間違った方法を使用している場合は、代わりにどの方法を使用するかを教えてくれる人はいますか?