繁体   English   中英

从另一个表更新表时出错

[英]Error when updating table from another table

我的陈述像这样,

update DATA_SOURCE tgt
 set 
 tgt.DATA_SOURCE_NM=src.DATA_SOURCE_NM,
 tgt.ODS_UPDATE_TS=src.ODS_UPDATE_TS
 select DATA_SOURCE_NM,ODS_UPDATE_TS
 from DATA_SOURCE_BKP src
where tgt.DATA_SRC_ID=src.DATA_SRC_ID;

我收到以下错误消息:

错误^发现“ SELECT”(字符103)期望关键字

我正在为Netezza使用Aginity工作台。 我究竟做错了什么?

尝试这个

update tgt
 set 
 tgt.DATA_SOURCE_NM=src.DATA_SOURCE_NM,
 tgt.ODS_UPDATE_TS=src.ODS_UPDATE_TS
from DATA_SOURCE tgt
inner join DATA_SOURCE_BKP src on tgt.DATA_SRC_ID=src.DATA_SRC_ID;

- 哪里

可能是您可以在最后添加where子句以过滤更多条件

您应该离开select关键字,并在FROM之后加入联接。 我找到了这个解决方案: https : //stackoverflow.com/a/2334741/2377961

在您的情况下:

update DATA_SOURCE tgt
  set 
    tgt.DATA_SOURCE_NM=src.DATA_SOURCE_NM,
    tgt.ODS_UPDATE_TS =src.ODS_UPDATE_TS   

 FROM 
   DATA_SOURCE_BKP src, DATA_SOURCE_BKP tgt
 WHERE 
   tgt.DATA_SRC_ID=src.DATA_SRC_ID

应该这样做。 FROM部分的工作方式如下:

FROM
    DATA_SOURCE_BKP
INNER JOIN
    DATA_SOURCE_BKP
ON
    DATA_SOURCE_BKP.DATA_SRC_ID = DATA_SOURCE_BKP.DATA_SRC_ID

当我删除线时它起作用

选择DATA_SOURCE_NM,ODS_UPDATE_TS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM