SQLServer从表中删除,列表来自另一个表

时间:2016-04-05 04:36:28

标签: sql-server-2012 sql-delete inner-query

我有一个DELETE,要求在WHERE子句中使用AND来选择行。 WHERE中的一个值实际上是一堆id。我可以完成编程以获取用户ID列表,然后使用列表循环。

This query returns a list of GroupUserIds
SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId

我希望从每个GroupUserId

的VariableTransaction中删除
Foreach @GroupUserId in GroupUserIds
DELETE FROM VariableTransaction WHERE VariableId = @VariableId AND GroupUserId = @GroupUserId

应该有办法将这些组合成一个单独的SQL语句,但是看看我无法找到解决方案的所有示例,AND的位置使它复杂化。

1 个答案:

答案 0 :(得分:1)

尝试将IN子句与子查询一起使用:

DELETE FROM VariableTransaction WHERE VariableId = @VariableId
AND GroupUserId IN (SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId)
相关问题