# oracle, update tabelle



## binfgi (30. Oktober 2006)

hallo,

ich habe eine Tabelle a mit einer spalte spalte_a. Diese Spalte möchte ich füllen aus einer zweiten Tabelle b mit der Spalte spalte_b. Die Verknüpfung der beiden Tabellen erfolgt Über eine id.
Das untere SQL statement funktioniert leider nicht. Aber so ähnlich müsste es gehen. Kann mir da jemand helfen?
Danke und Gruß


```
update table_a a
set a.spalte_a = (select b.spalte_b from tabelle_b b where a.id= b.id)
WHERE EXISTS
  ( SELECT b.spalte_b
    FROM tabelle_b b
    WHERE a.id= b.id);
```


----------



## zeja (30. Oktober 2006)

Warum so kompliziert?


```
update table_a a, tabelle_b b
SET a.spalte_a = b.spalte_b
where a.id = b.id
```


----------



## Exceptionfault (30. Oktober 2006)

Sorry zeja, aber deine Update Syntax geht leider nicht. 

Hier mein Versuch


```
SQL> select * from taba;

      ID_A FELD_A
---------- --------------------
         1 old Test
         2 old Test

SQL> select * from tabb;

      ID_B FELD_B
---------- --------------------
         1 Test
         3 Test

SQL> update taba a
  2  set a.feld_a = ( SELECT feld_b FROM tabb WHERE id_b = a.ID_A )
  3  where exists (
  4     SELECT  1
  5     FROM    tabb
  6     WHERE   id_b = a.id_a
  7  );

1 Zeile wurde aktualisiert.

SQL> select * from taba;

      ID_A FELD_A
---------- --------------------
         1 Test
         2 old Test
```


----------



## zeja (30. Oktober 2006)

Übersehen dass es sich um Oracle handelt. Mit mySQL gehts so wie ich gepostet hatte.


----------

