Wie aktualisiere ich eine DB2-Tabelle mit einem Join?
Ich habe zwei Tabellen und möchte sie aktualisieren, indem ich sie verbinde. Ich verwende DB2 V9.7.
ORDER_APPROVALS
ORDER_ID CREATED_BY_ID CREATED_BY_NAME PROCESS_DT
-------------------------------------------------------
234 2 admin (null)
307 2 admin (null)
313 2 admin 11-11-2013
ORDER_ATTRIBUTE
ORDER_ID ATTRIBUTE_ID VALUE
-----------------------------------
234 123 ? --(ORDER_APPROVALS.CREATED_BY_NAME)
307 123 ? --(ORDER_APPROVALS.CREATED_BY_NAME)
Ich möchte das Wertfeld anhand der Attribute_ID 123 aktualisieren. Bisher habe ich versucht, folgende Abfrage durchzuführen. Aber das funktioniert nicht. Ich habe eine ähnliche Art von Mitmachen in Netezza ausprobiert und das funktioniert. Möchten Sie wissen, wie es in DB2 gemacht wird?
update ORDER_ATTRIBUTE OT set OT.VALUE =
(select CREATED_BY_NAME from ORDER_APPROVALS OA
where OA.ORDER_ID = OT.ORDER_ID and OA.PROCESS_DT is NULL)
where OT.ATTRIBUTE_ID = 123 and OT.ORDER_ID in
(select ORDER_ID from ORDER_APPROVALS where PROCESS_DT is NULL)