PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Update


tapferesschneid
13.11.2003, 17:03:57
In einer Tabelle firmen_alt habe ich u. a. die Spalten firmen.id (INT) und firmen.kategorie (CHAR).

In einer anderen Tabelle firmen_neu fehlt firmen.kategorie. Jetzt habe ich die Spalte eingefügt.

Wie muß die Abfrage zum Abgleich korrekt lauten?

UPDATE firmen_neu
SET firmen_neu.kategorie = firmen_alt.kategorie
WHERE firmen_neu.id = firmen_alt.id

Da kommt dann »Unbekannte Tabelle 'firmen_alt' in where clause.«

Nev
14.11.2003, 11:13:31
Hi tapferesschneid

Bei einen Update kannst du nicht auf einen fremden Table zugreifen.

Du musst also zuerst den Wert aus dem alten Table auslesen und dann erst das Update fahren.

tapferesschneid
14.11.2003, 11:26:59
Echt? Also für jede Firmen-ID eine eigene Abfrage?

Geht vielleicht auch sowas (es sind nur drei Kategorien)


UPDATE firmen_neu
SET firmen_neu.kategorie = "A"
WHERE firmen_neu.id
IN (SELECT id from firmen_alt WHERE firmen.kategorie = "A")


Und wie muß es richtig heißen?

Nev
14.11.2003, 11:59:52
Hi @gain

Laut der Spezifikation von MySQL sollte es gehn.

tapferesschneid
14.11.2003, 13:47:08
>> Fehler in der Syntax bei 'SELECT id from firmen_alt WHERE firmen_alt.kategorie = "A")' in Zeile 1.

Nev
14.11.2003, 13:55:14
Geht auch erst in der neuen MySql-Version