2016-08-02 11 views
-2

我想這樣複雜的SQL,其中有多個AND和OR條件

Where (((t1.column1=value1 and t1.column2=value1) OR 
     (t1.column1=value2 and t1.column2=value2)) 
    AND ((t1.column1=value3 and t1.column2=value3) OR 
     (t1.column1=value4 and t1.column2=value4) OR 
     (...))) 

一些條款當我執行與查詢「OR」條件執行的第一部分,並返回結果。如果我包含查詢的第二部分以'AND'開頭,返回的結果集爲0.

有人可以幫我解決問題。爲了更好的理解

WHERE ( ( ( dataType = 'int'  AND DATA = '1') 
      OR ( dataType = 'Integer' AND DATA = '1') 
      ) 
     AND ( ( dataType = 'String' AND DATA = '17890') 
      OR ( dataType = 'String' AND DATA = '178postal') 
      ) 
     ) 
+3

...你要求't1.column1'同時至少有兩個不同的值。你如何期待任何行匹配? – TZHX

+2

T1.Column1對於同一記錄不能是值1和值3(假設值1和3實際上是不同的) – xQbert

+0

經過修改以便更好地理解:您需要數據類型爲'int'或'Integer'並且也是'String'。這對你有意義嗎?你應該從這個查詢中得到空集以外的任何東西嗎? – mathguy

回答

0

那是因爲你的意思是說t1.column1必須要麼值1或值2和t1.column1必須要麼在同一時間值3或VALUE4感謝

修改後的查詢。

除非value1和value3可以同時相同,那麼這有什麼意義? 我認爲你的邏輯中有一些錯誤。