2016-08-25 76 views
0

我有2個表:如何連接表,並得到價值

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_LOGLOGS_TABLE.FID對地下室SERIAL_NUMBER的關係。

我該怎麼做?

+0

這個問題不清楚,至少對我來說。你能分享一些樣本數據和你試圖得到的樣本結果嗎? – Mureinik

+0

[在Oracle上使用內連接更新語句]的可能重複(http://stackoverflow.com/questions/2446764/update-statement-with-inner-join-on-oracle) – lorond

回答

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; 
+0

我不知道爲什麼,但它顯示了我followinf錯誤「ORA-00942:表或視圖不存在」LOGS TABLE ....它的有趣,因爲我可以在數據庫內容中看到LOGS TABLE ... – Lazyman

+0

我已更新查詢。可能是因爲別名。此外,請嘗試使用帶有架構前綴的表名,如下所示:「schema」。「table」 https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements008.htm –