我有两个表 test1
和 test2
。我需要的是,我想用表 test2
中的数据更新表 test1
中的一列。我的查询是
UPDATE test2 t2
SET t2.name = (SELECT t1.name
FROM test1 t1
WHERE t1.id = t2.mob)
WHERE t2.mob IN (SELECT t1.id
FROM test1 t1
WHERE t1.id = t2.mob)
它显示
3 Rows updated
,但它没有反射(reflect)在我的表中。我的 reference 。我的查询中是否有任何问题。或者我应该交替做什么。 最佳答案
查询中的 WHERE
部分绝对没有必要,因为它总是计算为 TRUE
。因此,更新 t2
中所有行的正确方法是:
UPDATE test2 t2
SET t2.name = (SELECT t1.name
FROM test1 t1
WHERE t1.id = t2.mob)
此外,在 PL/SQL Developer 中,默认情况下不会自动提交事务。您必须通过按面板上的绿色箭头手动提交它。
关于sql - 更新查询结果未反射(reflect)在表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20780380/