SQL UPDATE in Abhängigkeit mit einer anderen Tabelle

DanielSan!

Cadet 2nd Year
Registriert
Mai 2009
Beiträge
20
Moin Jungs,
habe folgendes Problem bei einem Update-Befehl in MySQL:
Und zwar möchte ich eine Spalte "andrede" in der Tabelle "newsletter" updaten, aber in Abhängigkeit der "user_id" (Diese steht in newsletter und in der Tabelle "user_conf_profil", aus der ich mir die Anrede hole).
Habe folgenden Code, doch dieser Funktioniert leider nicht:
Code:
UPDATE newsletter SET andrede = 
(SELECT wert FROM conf_user_profil c 
JOIN newsletter n ON c.user_id = n.user_id
WHERE c.profil_id = 3)
Ich Joine die Tabelle conf_user_profil, aber nur dort wo die user_id die gleiche ist wie die aus newsletter.
Ich bekomme einen Syntax Error, obwohl ich mir eigentlich sicher bin das die Syntax richtig ist. Ich weiß nur nicht ob die Syntax auch MySQL kompatibel ist, da ich eig. bis jetzt immer nur MsSQL gemacht habe!
Könnt ihr mir hierbei helfen?
Gruß Daniel
 
das inner select gibt eine menge von werten zurück (eventuell nach deinen conditions nur ein element, aber immernoch eine menge) und diese kann nicht als ein wert in eine (jede einzelne) tabellenspalte geschrieben werden.
 
sollte für den fall nicht ein einfaches " LIMIT 1" helfen?
ansonsten erstellst du mit dem update ja redudanzen, es wäre sinvoller das beim auslesen mit abzufragen!
 
Sicher dass es ein Syntax-Error ist und nicht einfach die Spalte "andrede" falsch geschrieben wurde?
 
Hallo Jungs,
habe es nun gelöst bekommen mit folgender Syntax:

UPDATE newsletter SET nachname =
(SELECT wert FROM conf_user_profil c
WHERE newsletter.user_id = c.user_id
AND c.profil_id = 3)

Das Feld "andrede" was ja natürlich "anrede" heißen musste war auch falsch geschrieben :)
Trotzdem Danke für eure Vorschläge!
Gruß Daniel
 
Zurück
Oben