我一直在尝试更新SQL Developer上的表

时间:2016-01-21 14:36:41

标签: sql oracle

我正在尝试使用SQL Developer中的另一个表更新表。数据结构如下所示:

Table_to_be_updtated

Shipment    pkg_type.
1395         1
1395         1
1395         1
2233         2
5466         3

Table_with_update_info

Shipment       pkg_type.
1395            3
1395            3
1395            3
2233            1
5466            2

这是我的更新程序查询

UPDATE d 
SET d.pkg_type = bd.pkg_type 
FROM Table_to_be_updtated.Shipment d
JOIN Table_with_update_info.Shipment bd
ON bd.Shipment = d.Shipment;

这只是我最近的尝试。我试过可能其他版本的更新查询,但没有成功。我希望有人可以帮助我。

谢谢

1 个答案:

答案 0 :(得分:1)

对于初学者来说,看起来你正在引用表声明中的列,但无论如何 - 在Oracle中执行此操作的最简单方法是使用以下语法:

UPDATE Table_to_be_updtated d
   SET pkg_type = (SELECT bd.pkg_type 
                     FROM Table_with_update_info bd
                    WHERE bd.Shipment = d.Shipment);

对于其他方式,looks at Justin`s answer on correlated updates here