我需要在一列中检查2个或更多的值并提取数据。这与使用"in“运算符不同。
例如:我有一个包含两列User id,Standard ID的表。我的应用程序发送了多个标准id的值。现在我需要找到对所有标准都有权限的用户。
在下面的示例中,我需要找到同时映射到529和551的"UserID“。
UserID StandardId
9- 529
12- 529
12- 551
15- 529
17- 551
17- 529
18- 529
21- 529
21- 551
49- 529
58- 529
60- 529
62- 529
62- 551
64- 529
64- 551
81- 529
83- 529
83- 551
226- 551
226- 529
298- 551
298- 529
335- 529根据目前的映射,有7个标准需要验证。这种映射在未来可能会增长。
发布于 2014-07-16 15:58:59
我可能不完全理解你的问题,但这能行得通吗?
SELECT UserId FROM [table] WHERE StandardId = 529
INTERSECT
SELECT UserId FROM [table] WHERE StandardId = 551有关INTERSECT查询的更多信息,请阅读here。
发布于 2014-07-16 16:02:07
我认为您可以对ID进行分组,并创建聚合函数来检查它是否与这两个值匹配
发布于 2014-07-16 16:06:44
尝尝这个
Select t.id
from table t
join table t1
on t.userid = t1.userid
where t.standardid= 529 and t1.standardid = 551https://stackoverflow.com/questions/24775163
复制相似问题