我有两个表 test1test2 。我需要的是,我想用表 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/

10-12 04:04
查看更多