2011-10-28 232 views
-6

我正在使用Oracle的SQL數據庫類。這裏有一個任務:Oracle的嵌套SQL語句

「找到圖書標題,作者姓名和單位手頭上每本書分支4號」

我試過嵌套聲明,但沒有有不同的方式與這些表一起工作。

  • BOOK
  • 作者
  • 庫存
  • 分公司

這是非常有幫助! (確實想學習這個,而不是完成我的作業)到目前爲止,我得到了。另外,如果我想剛纔的答案,我會這麼說,...

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; 

但現在我有一堆重複的產品

+2

請張貼您的架構。 – RedFilter

+0

-1因爲你沒有顯示任何你試圖自己解決這個問題的跡象。 –

回答

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應該是第一個表格,因爲您正在過濾這個表格。如果你喜歡,並且你認爲它更有意義,你可以做到這一點。在某些情況下,雖然通常查詢優化器負責處理,但可能會導致更好的性能。

+0

難道你不覺得這對於一個作業問題有點多嗎 –

+0

爲什麼?如果某人真正爲自己寫這些查詢而獲得報酬,我會發布相同的答案。 – GolezTrol

+0

這當然完全取決於您,但回答功課問題時[faq](http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions)部分的建議沒有完整的代碼。 –