[Oracle] - Update statement with JOIN

Standard


หลังจากเคยชินกับ MySQL มานาน  อะไรที่เขียนแบบ MySQL ก็เลยคิดว่าน่าจะใช้ได้กับ Oracle   วันนี้มีเหตุให้ต้อง Update ข้อมูลจาก Table1  มาใส่ Table2  ถ้าเป็น MySQL ก็จะใช้ Statement ประมาณนี้

UPDATE TABLE1
INNER JOIN TABLE2 ON TABLE1.KEY = TABLE2.KEY
SET TABLE1.OLD = TABLE2.NEW
WHERE XXXX

พอเอาไปใช้กับ Oracle ปุ๊บมันไม่ได้  ฮ่า ๆ เลยไปหาข้อมูล   แล้วเจอประมาณว่า Oracle มันใช้ JOIN ใน UPDATE ไม่ได้  ก็เลยต้องเขียน Statement ของ Oracle ประมาณนี้ครับ

UPDATE 
(SELECT TABLE1.OLD as OLD, TABLE2.NEW as NEW
 FROM TABLE1
 INNER JOIN TABLE2 ON TABLE1.KEY = TABLE2.KEY
 WHERE XXXX
) t
SET t.OLD = t.NEW