MYSQL - Update Select Abfrage
Hi,
ich will gerne eine Update / Select Abfrage machen, aber bekomme den korrekten Syntax nicht hin. Ich hoffe es geht überhaupt.
Folgende 3 Tabelle gibst es: s_oder, s_user und s_user2
In der s_oder steht eine falsche userID. Diese würde ich gerne updaten.
Das Statement für die korrekte userID herauszufinden lautet so:
Leider weiß ich nicht genau wir ich das nun machen kann.
So geht es nicht:
Für einen Tipp bin ich dankbar.
MFG
ottscho
ich will gerne eine Update / Select Abfrage machen, aber bekomme den korrekten Syntax nicht hin. Ich hoffe es geht überhaupt.
Folgende 3 Tabelle gibst es: s_oder, s_user und s_user2
In der s_oder steht eine falsche userID. Diese würde ich gerne updaten.
Das Statement für die korrekte userID herauszufinden lautet so:
SELECT s_user2.id FROM s_order
INNER JOIN s_user ON s_order.userID = s_user.id
INNER JOIN s_user2 ON s_user.email = s_user2.email
WHERE s_order.id > 14900
Leider weiß ich nicht genau wir ich das nun machen kann.
So geht es nicht:
Update s_order SET userID =
(SELECT s_user2.id FROM s_order
INNER JOIN s_user ON s_order.userID = s_user.id
INNER JOIN s_user2 ON s_user.email = s_user2.email)
WHERE s_order.id > 14900
Für einen Tipp bin ich dankbar.
MFG
ottscho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189500
Url: https://administrator.de/contentid/189500
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
korrekten Syntax nicht hin
deine innere SELECT Anweisung gibt ja eine Ergebnis Menge zurück(
SELECT ...
LIMIT 1
)
versuch mal:
UPDATE s_order
INNER JOIN s_user ON s_order.userID = s_user.id
INNER JOIN s_user2 ON s_user.email = s_user2.email
SET userID = s_user2.id
WHERE s_order.id > 14900