2013-10-29 72 views
0

我已經在Oracle數據庫中以下三個表命名爲A,B和C.寫入一個SQL JOIN基於三個表

  • 在表是AID(PK)中的字段,AName,BID(FK )。
  • B表中的字段是BID(pk),BAge。
  • C表中的字段是CID(pk),CSalary,BID(fk)。

現在我寫上三個表連接條件爲

select a.AName from A a,B b,C c 
    where a.BID=b.BID and b.BID=c.BID. 

是我對那三個表寫在連接條件的方式是right.Please建議我。

+1

您的查詢似乎適用於甲骨文,你到底是「皇結果」是什麼意思? –

+0

意味着在我的連接條件,我寫a.BID = b.BID和b.BID = c.BID,在這裏我寫這兩個表達式基於BID查詢,這樣我違反了任何連接條件。 – reddy

+0

這不是結果,那是條件。你說查詢給你錯誤的結果。您提供的查詢應該給您列出所有三個表中薪水字段爲1000的所有記錄的列表。這不是您想要的嗎? –

回答

2

嘗試加入 ::

select 
a.AName 
from A a 
inner join B b on a.BID=b.BID 
inner join C c on b.BID=c.BID 

where c.CSalary=1000; 
+0

表「a」的別名「a」並不合理。 –

+0

@a_horse_with_no_name:我試圖不改變現有的查詢:-) –

+0

我不確定這將解決問題,因爲,據我所知,它將返回他目前具有的相同結果。 –