2016-07-26 188 views
0

我有了喜歡的條目SQL表之一:選擇列A中列B ='值'的條目列表。然後,選擇所有條目,其中A列在名單

RuleID Symbol  
1  OR  
1  123 
1  363  

2  AND  
2  847 
2  287 

3  AND  
3  NOT 
3  234 
3  867 

4  NOT  
4  995 

結果應該是:

3  AND  
3  NOT 
3  234 
3  867 

4  NOT  
4  995 

符號=「而不是」對應於RuleID ='3'和RuleID ='4'。我想

select * in table where RuleID = '3' or '4' 

我該如何做到這一點與SQL服務器?

+2

更快('3','4')中的RuleID選擇* – Kostya

回答

1

要它使用執行連接,其通常比使用IN子句

SELECT T.* 
from table T INNER JOIN 
(SELECT Distinct RuleID 
    FROM table 
    WHERE SYMBOL = 'not' 
) A 
ON A.RuleID = T.RuleID 
4

您應該使用in。例如:

SELECT * FROM表WHERE RULEID中(從表中選擇RULEID其中SYMBOL = '不')

相關問題