【问题标题】:How to join table and get values如何连接表并获取值
【发布时间】:2016-08-25 08:16:09
【问题描述】:

我有 2 张桌子:

LOGS_TABLE:

FID           (NUMBER)
SERIAL_NUMBER (VARCHAR2)
LOG_RESULT    (VARCHAR2)

POINT_TABLE:

FID           (NUMBER)
SERIAL_NUMBER (VARCHAR2)
FID_LOG       (NUMBER)

连接表的属性是SERIAL_NUMBER,但我需要将来自LOGS_TABLE.FIDPOINT_TABLE.FID_LOG 值插入到地下室SERIAL_NUMBER 关系中。

我该怎么做?

【问题讨论】:

标签: sql oracle join sql-update


【解决方案1】:

对于 Oracle,您可以使用以下语句:

UPDATE (SELECT p.FID_LOG fid_log
             , l.FID     fid
          FROM POINT_TABLE p
             , LOGS_TABLE  l
         WHERE p.SERIAL_NUMBER = l.SERIAL_NUMBER)
   SET fid_log = fid

也可以像这样使用MERGE 语句:

 MERGE INTO POINT_TABLE p
 USING (SELECT * 
          FROM LOGS_TABLE) l
    ON (p.SERIAL_NUMBER = l.SERIAL_NUMBER)
  WHEN MATCHED THEN 
UPDATE 
   SET p.FID_LOG = l.FID;

【讨论】:

  • 我不知道为什么,但它显示了LOGS TABLE的followinf错误“ORA-00942:表或视图不存在”......这很有趣,因为我可以在数据库内容中看到LOGS TABLE ...
  • 我已更新查询。可能是因为别名。另外,请尝试使用带有模式前缀的表名,例如:“schema”.“table”docs.oracle.com/cd/B19306_01/server.102/b14200/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 2019-06-02
  • 1970-01-01
  • 2022-01-25
  • 2021-08-10
  • 1970-01-01
相关资源
最近更新 更多