选择列A中列B ='值'的条目列表。然后,选择所有条目,其中A列在名单
问题描述:
我有了喜欢的条目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服务器?
答
要它使用执行连接,其通常比使用IN子句
SELECT T.*
from table T INNER JOIN
(SELECT Distinct RuleID
FROM table
WHERE SYMBOL = 'not'
) A
ON A.RuleID = T.RuleID
答
您应该使用in
。例如:
SELECT * FROM表WHERE RULEID中(从表中选择RULEID其中SYMBOL = '不')
更快('3','4')中的RuleID选择* – Kostya