2014-05-11 42 views
-1

我有一個查詢有4個表Table1,Table2,Table3Table4如何使用JOIN表示OR表

Table1是具有ID的
Table2是子表與FK關係與Table1主表,並且具有稱爲Tag柱。
Table3是子表與Table1 FK的關係,有一個名爲Code
Table4列是子表FK關係與Table1並具有柱稱爲Code2

現在我想查詢表示後續邏輯

Select Table1.ID 
From Table1 ... 
WHERE Table2.Tag IN(1,2,3,4) 
     AND (Table3.Code In (456,789) OR Table4.CODE2 in (123,897)) 

我知道我可以加入Table1Table2獲得Tag val ue在(1,2,3,4)。但我不知道如何加入Table3Table4以達到要求。

+0

你說過table3/table4與table1有FK關係。然後加入引用table1的那一列。否則,請爲table3和table4顯示您的表格模式 – Rahul

回答

0

你只是不斷加入加入到基於條件的子表,在每個子表的外鍵列等於表1中的關鍵

你查詢應該是這樣的

Select Table1.ID 
From Table1 
JOIN Table2 ON Table2.FK_ID = Table1.ID 
JOIN Table3 ON Table3.FK_ID = Table1.ID 
JOIN Table4 ON Table4.FK_ID = Table1.ID 
WHERE Table2.Tag IN(1,2,3,4) 
AND (Table3.Code In (456,789) OR Table4.CODE2 in (123,897)) 

但用FK_ID替換爲適當的外鍵字段

+0

感謝您的回答。我會試試這個,讓你知道。 – user3624772

+0

謝謝湯姆它的工作。 – user3624772

相關問題