2013-04-04 49 views
0

我正在讀取3個表中的數據SQL不包括字段ID,其中包括以下內容

ID在所有3個表格中是通用的。

這工作

select 

     T1.ID, 
     T2.CAUSE_NO, 
     T2.CAUSE_TYPE, 
     T3.START_NO, 
     T3.START_TYPE, 
     T1.Comments 
from Table1 T1, 
     Table2 T2, 
     Table3 T3 

where T2.ID = T3.ID 
    and T1.ID = T2.ID 
    AND T2.CAUSE_NO NOT IN (64,8,43,63,65) 

我還需要添加條件,我不希望包括ID where CAUSE_NO = 13 and START_NO = 83.

下面是示例表。綠色是我想要的結果,紅色行不應該包括在內。 enter image description here 有人可以幫助添加此條件。

+1

從問題看來,你需要添加條件'AND(CAUSE_NO <> 13或START_NO <> 83)',但無法理解你的樣表... – 2013-04-04 15:43:33

+0

我相信工作。非常感謝。在樣本表中,我不想包含ID = 12,15,19,24,27,因爲它包含13&83在一起。 – Mowgli 2013-04-04 15:47:41

回答

1

我想你想這where條款:

where T2.ID = T3.ID 
    and T1.ID = T2.ID 
    AND T2.CAUSE_NO NOT IN (64,8,43,63,65) 
    AND not (CAUSE_NO = 13 and START_NO = 83) 

你也應該學會使用ANSI標準聯接語法。

+0

條件與AND(CAUSE_NO <> 13或START_NO <> 83)'相同嗎? – Mowgli 2013-04-04 15:49:57

+0

不,我試過,它是做相反的,它只顯示13&83記錄。 – Mowgli 2013-04-04 15:53:03

+0

它應該是相同的,請參閱[這裏](http://en.wikipedia.org/wiki/De_Morgan's_laws),你注意到'AND'之後的'not'嗎? – 2013-04-04 15:55:02