我正在使用Oracle获取SQL数据库类。有一项任务:
“查找分行编号为4的每本书的书名,作者姓氏和手头单位”
我尝试了不同的嵌套语句方法,但没有一种方法可以使用这些表。
这非常有帮助! (实际上想要学习这个而不仅仅是完成我的作业)到目前为止我得到了。此外,如果我只想要答案,我会这样说,......
select book.book_code, author.author_last, inventory.on_hand
from book inner join wrote on book.book_code = wrote.book_code,
author inner join wrote on author.author_num = wrote.author_num,
inventory inner join branch on inventory.branch_num = branch.branch_num
where branch.branch_num = 4;
但现在我有一堆重复的产品
答案 0 :(得分:2)
你不需要筑巢。你需要加入。
你可能需要这样的东西,虽然我需要确切的表格结构。但是你会得到一般的想法。
select
b.TITLE,
a.LASTNAME,
i.UNITSONHAND
from
BOOK b
inner join AUTHOR a on a.AUTHORID = b.AUTHORID
inner join INVENTORY i on i.BOOKID = b.BOOKID
inner join BRANCH br on br.BRANCHID = b.BRANCHID
where
br.BRANCHID = 4
有些人会认为BRANCH应该是第一个表,因为你正在过滤它。如果你愿意,你可以这样做,如果你认为它更有意义。在某些情况下,它可能会带来更好的性能,但通常查询优化器会处理它。