Ja_Söhne Geschrieben 3. Februar 2009 Teilen Geschrieben 3. Februar 2009 Hallo, irgendwie bekomme ich das nicht gebacken, folgende Ausgangssituation: Ich habe 2 Tabellen produkte und optionen. In der Tabelle produkte habe ich den Primärschlüssel "id" und die Produktnummer "nummer" etc. In der Tabelle optionen gibt es ebenfalls die obengenannte "id", den "optionsname" (blau, grün, rot, nein, viel, groß etc.) und die "optionsnummer". Zu jeder "id" gibt es 3 oder mehr/weniger optionsnamen je nach produkt, also z.B. id | optionsname | optionsnummer 3 | blau | 55555 3 | grün | 66666 3 | rot | 77777 Nun möchte ich, daß die optionsnummer mit der nummer überschrieben wird für den Fall blau, grün, rot. Was mache ich bei folgenden Code falsch? UPDATE optionen SET optionsnummer = nummer FROM (SELECT p.id, p.nummer, o.id, o.optionsnummer, o.optionsname FROM produkte AS p OUTER JOIN optionen AS o ON p.id = o.id) WHERE optionsname = 'blau' OR optionsname = 'grün' OR optionsname = 'rot' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 3. Februar 2009 Teilen Geschrieben 3. Februar 2009 Welches DBMS? Wie lautet die Fehlermeldung? Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ja_Söhne Geschrieben 3. Februar 2009 Autor Teilen Geschrieben 3. Februar 2009 Hallo, er zeigt mir unter phpmyadmin folgende Fehlermeldung an: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM (SELECT p.id, p.nummer, o.id, o.optionsnummer, o.optionsname, at line 1). Klammer falsch ? Danke Ja-Sons Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 3. Februar 2009 Teilen Geschrieben 3. Februar 2009 Was möchtest Du überhaupt? So wie ich das sehe macht das Statement keinen Sinn. Du möchtest ein Update auf eine Tabelle von einem Select machen? Ein Select ist statisch, auf diesem kannst Du keine Änderungen machen. Bitte einmal durcharbeiten: MySQL Datenbankhandbuch Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ja_Söhne Geschrieben 5. Februar 2009 Autor Teilen Geschrieben 5. Februar 2009 Danke Phil, ich hatte gedacht, daß ich mich auf die 3. UPDATE-Syntax dieser Seite: UPDATE zum Aktualisieren existierender Zeilen beziehen kann, aber die MySQL Syntax war dann doch etwas anders und zwar wie folgt: UPDATE optionen INNER JOIN produkte ON optionen.id = produkte.id SET optionen.optionsnummer = produkte.nummer WHERE optionsname = "rot" Problem gelöst... Gruß Jan Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.