我有一个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的位置使它复杂化。
答案 0 :(得分:1)
尝试将IN子句与子查询一起使用:
DELETE FROM VariableTransaction WHERE VariableId = @VariableId
AND GroupUserId IN (SELECT Id FROM GroupUser WHERE GroupUserId = @GroupUserId)