我正在尝试根据同一个表中的数据更新表中的行。以下是我写的查询...
Update qf.UserCustomProperty
SET PropertyValue = '1'
SELECT
[UserId]
FROM qf.UserCustomProperty
WHERE PropertyId = 49
and UserId IN
(SELECT
UserId
FROM qf.UserCustomProperty
WHERE PropertyId = 47
AND PropertyValue = 1)
我正在尝试更新属性为49的用户,同一用户的属性值为47,属性值为1.该脚本正在更新属性值为47的所有用户,其属性值为1。
答案 0 :(得分:1)
我看到你已经正确地编写了逻辑,但实际上你已经在两个单独的查询中编写了它。我刚刚将两个单独的查询合并为一个。这应该有用。
Update qf.UserCustomProperty
SET PropertyValue = '1'
WHERE PropertyId = 49
and UserId IN
(SELECT
UserId
FROM qf.UserCustomProperty
WHERE PropertyId = 47
AND PropertyValue = 1)
答案 1 :(得分:0)
您的子查询选择PropertyID为47的行,因此当它传递给顶部查询时,没有PropertyID为49的记录。您不需要子查询,只需要一个where子句;
where PropertyID = 47 and PropertyID = 49 and PropertyValue = 1