[mysql] Frage zu Update
lachesis
- datenbank
0 Michael Nagler0 srob
Hallo zusammen,
Ich kniffle momentan schon ne ganze Weile
an einem update statement für mysql.
Ich habe 2 Tabellen:
stunden
id uid pid stunden gebucht
1 2 5 4.5 0
2 1 5 2 0
3 3 2 6 0
user
id name kstelle
1 xxx 10
2 yyy 20
3 ttt 10
uid referenziert die id in der Tabelle user
Was ich möchte ist, dass alle Stundeneinträge in stunden auf gebucht=1 gesetzt werden bei denen die pid=5 ist und wo die kstelle der Users 10 ist. Also lediglich stunden.id=2.
ich habe versucht
UPDATE stunden
SET gebucht="1"
WHERE pid="5" AND user.kstelle="10"
Das funktioniert nicht, weile er user nicht kennt.
Wie funktionierts?
Danke für eure Hilfe (auch wenn meine Fragen meist blöd sind)
Grüßle, lach
Ohne Garantie:
UPDATE stunden
SET gebucht="1"
WHERE pid="5" AND user.kstelle="10"
UPDATE stunden, user
SET stunden.gebucht="1"
WHERE stunden.pid="%" AND user.kstelle="10"
MfG
Michael
Hi,
Was ich möchte ist, dass alle Stundeneinträge in stunden auf gebucht=1 gesetzt werden bei denen die pid=5 ist und wo die kstelle der Users 10 ist. Also lediglich stunden.id=2.
falls Deine MySQL-Version dazu in der Lage ist, könntest Du:
1. einen Subselect in der WHERE-Bedingung einsetzen:
UPDATE blah
SET blah
WHERE (pid = 5) AND (uid IN (SELECT id FROM user WHERE kstelle = 10))
2. einen Join in der WHERE-Bedingung machen (ab V4.0x oder so...):
UPDATE stunden,user
SET stunden.gebucht = 1
WHERE (stunden.pid = 5) AND (stunden.uid = user.id) AND (user.kstelle = 10)
HTH Robert