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



我有一个DELETE,需要在where子句中使用带有AND的where来拾取行。WHERE中的值之一实际上是一堆id。我可以通过编程来获得用户id的列表,然后使用该列表进行循环。

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

我希望从VariableTransaction中删除每个GroupUserId

Foreach @GroupUserId in GroupUserIds
DELETE FROM VariableTransaction WHERE VariableId = @VariableId AND GroupUserId = @GroupUserId

应该有一种方法可以将这些合并到一个SQL语句中,但看了所有的例子,我都无法找到解决方案,其中AND使其复杂化。

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

DELETE FROM VariableTransaction WHERE VariableId = @VariableId
AND GroupUserId IN (SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId)

最新更新