来自另一个select的SQL Update

时间:2011-10-06 14:28:38

标签: sql oracle

我想从另一个(太长而复杂的)查询的结果更新表(Oracle)。

为简单起见,Query1是我的复杂查询并返回如下内容:

 Item_ID | Item_Data
 --------------------
 10          XXX
 20          ZZZZ
 30          SSSS

我想这样做

 UPDATE MyTable SET MyTable.MyData = Query1.Item_Data where MyTable.MyID = Query1.Item_ID

我怎样才能做到这一点? 感谢

1 个答案:

答案 0 :(得分:2)

检查MERGE INTO条款。我现在无法测试,但它应该是这样的:

MERGE INTO mytable mt
USING (your complex query here) cc
  ON mt.myid = cc.item_id
WHEN MATCHED THEN UPDATE SET mt.mydata = cc.item_data