2016-11-18 26 views
-1

在MySQL下面的查詢:MySQL的更新:每一個派生表必須有它自己的別名

UPDATE e_element e1 
INNER JOIN 
(
SELECT DVAL 
FROM e1 
    INNER JOIN e_element e2 
    ON e1.ENT_OID = e2.ENT_OID 
    WHERE 
    e2.META_OID = 336810 AND 
    e1.META_OID = 359462 AND 
    e1.DVAL = '0001-01-01 00:00:00' 
) 
SET e1.DVAL = e2.DVAL; 

拋出以下錯誤:

Error Code: 1248 
Every derived table must have its own alias 

我已經嘗試了一些不同的選擇有兩個選擇語句但我永遠無法實現我想要的結果,即將這些值從e2複製到e1給定這些條件

+0

刪除括號'}'並用右括號')'替換。 – Viki888

+0

您發佈的代碼中沒有'}',因爲您用')替換了它。但運行更新的查詢不會再產生報告的錯誤。要麼更新錯誤信息(如果仍然有問題)或者關閉該問題,因爲在當前狀態下,您不清楚您要問什麼。 – axiac

回答

1

您的查詢有多個錯誤。 。 。一個花括號,沒有on子句,對錶別名的不恰當引用,where子句在錯誤的地方。

也許你打算:

UPDATE e_element e1 INNER JOIN 
     e_element e2 
     ON e1.ENT_OID = e2.ENT_OID 
    SET e1.DVAL = e2.DVAL 
WHERE e2.META_OID = 336810 AND 
     e1.META_OID = 359462 AND 
     e1.DVAL = '0001-01-01 00:00:00'; 
1

嘗試此查詢

UPDATE e_element e1 
    INNER JOIN e_element e2 
     ON e1.ENT_OID = e2.ENT_OID 
    SET e1.DVAL = e2.DVAL 
WHERE e2.META_OID = 336810 
     AND e1.META_OID = 359462 
     AND e1.DVAL = '0001-01-01 00:00:00'; 

希望這會幫助你。

相關問題