Oracle Update在select语句中使用连接

时间:2013-12-03 23:38:09

标签: sql oracle

我正在尝试根据连接表中的数据更新字段。我已经读过Update命令不能用于where子句中的表连接。但是,我不能使用Exists命令解决方法,因为我的条件不是链接记录的存在,而是该链接记录中的值。

update stock S
set stm_auto_key=186086
From
  STOCK Left Join
  STOCK_RESERVATIONS On STOCK.STR_AUTO_KEY = STOCK_RESERVATIONS.STR_AUTO_KEY
Where
  S.QTY_OH > 0 And
  S.STM_LOT = 128729 And
  STOCK_RESERVATIONS.IND_AUTO_KEY Is Null 

select语句可以很好地独立工作。但是,在更新命令中使用它会导致" SQL命令未正确结束。"

提前致谢...

1 个答案:

答案 0 :(得分:0)

我想,你需要这样的东西,因为在UPDATE语句中可能没有FROM子句:

update stock S
set stm_auto_key=186086
Where
  S.QTY_OH > 0 And
  S.STM_LOT = 128729 And
  (SELECT STOCK_RESERVATIONS.IND_AUTO_KEY FROM STOCK_RESERVATIONS
   WHERE S.STR_AUTO_KEY = STOCK_RESERVATIONS.STR_AUTO_KEY) Is Null