Mysql SQL can';无法运行更新查询,因为表被指定了两次
我是SQL新手,不能充分利用其他类似的问题 我想给所有同住一所房子的人打30%的折扣,所以我有一张桌子,上面有身份证、价格和房子名称 这是我的问题:Mysql SQL can';无法运行更新查询,因为表被指定了两次,mysql,sql,database,Mysql,Sql,Database,我是SQL新手,不能充分利用其他类似的问题 我想给所有同住一所房子的人打30%的折扣,所以我有一张桌子,上面有身份证、价格和房子名称 这是我的问题: UPDATE person SET price= price*0.97 WHERE house IN (SELECT p.house FROM person p GROUP BY p.house HAVING COUNT(*) >2); 它说“表被指定了两次,既作为‘更新’的目标,也作为单独的数据源”,但我不知道其他方法来保存房子的字符串并
UPDATE person
SET price= price*0.97
WHERE house IN (SELECT p.house FROM person p GROUP BY p.house HAVING COUNT(*) >2);
它说“表被指定了两次,既作为‘更新’的目标,也作为单独的数据源”,但我不知道其他方法来保存房子的字符串并比较其他声音
我应该如何继续?这是MySQL中的一个限制。解决方案是使用
连接
:
UPDATE person p JOIN
(SELECT p.house
FROM person p
GROUP BY p.house
HAVING COUNT(*) > 2
) ph
ON p.house = ph.house
SET p.price = p.price * 0.97;
JOIN
执行过滤,而不是中的