# [MySQL] UPDATE einer Tabelle mit Einträgen aus einer anderen



## HamstaH (13. Januar 2009)

Moin Moin,

ich versuche gerade einen etwas (für mich jedenfals) komplizierteren SQL UPDATE durchzuführen:
Ich habe zwei Tabellen, in beiden sind Teilnehmer_IDs aufgelistet (es sind aber nicht die Primärschlüssel !) und ich möchte nun Werte aus der Tabelle_B in die Tabelle_A übertragen, aber nur wenn die Teilnehmer_IDs übereinstimmen.


```
Tabelle_A
| - - - - - - | - - - - - - - - - - - - -|- - - - - - -|
| Frage       | Teilnehmer_ID            | Antwort     |
| - - - - - - | - - - - - - - - - - - - -|- - - - - - -|
|             | 1234                     | Ja          |
| - - - - - - | - - - - - - - - - - - - -|- - - - - - -|
|             | 1235                     | Nein        |
| - - - - - - | - - - - - - - - - - - - -|- - - - - - -|
...

Tabelle_B
| - - - - - - - -| - - - - - - - - - - - - -|- - - - - - -|
| Frage_ID       | Teilnehmer_ID            | Wert        |
| - - - - - - - -| - - - - - - - - - - - - -|- - - - - - -|
| 1              | 1234                     | Eins        |
| - - - - - - - -| - - - - - - - - - - - - -|- - - - - - -|
| 2              | 1234                     | Zwei        |
| - - - - - - - -| - - - - - - - - - - - - -|- - - - - - -|
| 1              | 1235                     | Drei        |
| - - - - - - - -| - - - - - - - - - - - - -|- - - - - - -|
| 2              | 1235                     | Vier        |
| - - - - - - - -| - - - - - - - - - - - - -|- - - - - - -|
...
```

Also was ich gern hätte ist den Tabelle_B.Wert in Tabelle_A.Frage aber natürlich bei dem entsprechenden Teilnehmer und nur von Frage_ID=1.

Nach meiner Logik müßte der Befehl so lauten:
UPDATE Tabelle_A SET Tabelle_A.Frage = (SELECT Wert FROM Tabelle_B WHERE Frage_ID=1) WHERE TabelleA.Teilnehmer_ID=TabelleB.Teilnehmer_ID
Was aber leider nicht funktioniert


----------



## HamstaH (14. Januar 2009)

Ingrid: So gehts
UPDATE Tabelle_A SET Tabelle_A.Frage = (SELECT Wert FROM Tabelle_B WHERE Frage_ID=1 AND TabelleA.Teilnehmer_ID=TabelleB.Teilnehmer_ID)
Ich verstehs zwar nicht 100%, aber es funktioniert einwandfrei


----------

