如何连接表并获取值

时间:2016-08-25 08:16:09

标签: sql oracle join sql-update

我有两张桌子:

LOGS_TABLE

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

POINT_TABLE

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

要加入表格的属性为SERIAL_NUMBER,但我需要的是在基础POINT_TABLE.FID_LOG关系中插入来自LOGS_TABLE.FID的{​​{1}}值。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

对于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;