0

我有一个 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 的位置使其复杂化。

4

1 回答 1

1

尝试使用带有子查询的 IN 子句:

DELETE FROM VariableTransaction WHERE VariableId = @VariableId
AND GroupUserId IN (SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId)
于 2016-04-05T04:45:45.017 回答