UPDATE-Problem über 2 Tabellen (MySQL)
gondor
- datenbank
Hallo,
ich brauche Rat zu einer Update-Query. Ich möchte Tabelle 1 updaten. Und zwar soll der 'status' dann auf '1' gesetzt werden, wenn Tabelle2.xid = Tabelle1.xid und Tabelle2.yid = Tabelle1.yid sind. Leider klappt das bei mir nach mehrmaligen probieren nicht.
Kann mir jemand helfen?
Tabelle 1 (xid, yid, status)
1|1|0
1|2|0
1|3|0
1|4|0
1|5|0
2|1|0
2|2|0
2|3|0
2|4|0
2|5|0
...
Tabelle 2 (xid, yid)
1|1|
1|2|
1|4|
1|5|
2|1|
2|3|
...
Ergebnis Tabelle 1 (xid, yid, status)
1|1|1
1|2|1
1|3|0
1|4|1
1|5|1
2|1|1
2|2|0
2|3|1
2|4|0
2|5|0
...
Danke,
gondor(..)
Hi,
Das ist jetzt Sql-Server Syntax aber so ähnlich müsste es gehen,
es sei denn MySql lässt das nicht zu:
-->
UPDATE (SELECT Tabelle1.status FROM Tabelle1 INNER JOIN Tabelle2 on Tabelle1.xid= tabelle2.xid AND Tabelle1.yid = Tabelle2.yid)
SET status=1
<--
Viele Grüße
apfelsine
yo,
update tabelle1 tab1 SET status = 1
WHERE EXISTS (SELECT *
FROM tabelle2 tab2
WHERE tab2.xid = tab1.xid
AND tab2.yid = tab1.yid
)
;
Ilja
update tabelle1 tab1 SET status = 1
WHERE EXISTS (SELECT *
FROM tabelle2 tab2
WHERE tab2.xid = tab1.xid
AND tab2.yid = tab1.yid
)
;
@apfelsine: leider gab's ne fehlermeldung.
@ilja: das hat funktioniert :) super!
vielen dank,
gondor(..)