oracle update mit inner join

wieder mal ein kleines howto, für etwas, das mir wieder mal auf die schnelle nicht eingefallen ist.

wenn man in einer tabelle A alle spalten a auf einen bestimmten wert setzen möchte, die eine bestimmte bedingung (A.b = B.b) mit einer anderen tabelle B erfüllen, geht das in oracle so:

UPDATE A
set A.a =
(SELECT B.a
FROM B
WHERE A.b = B.b)

in access würde es so gehen:

update A inner join B on
A.b = B.b
SET A.a = B.a

in SQL server so:
UPDATE A
SET A.a = B.a
INNER JOIN B
ON A.b = B.b

siehe z.b. auch sql-tutorial

Advertisements