Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Ich habe mal wieder ein kleines Problem und komme nicht weiter...
Mit
Code:
SELECT * FROM `prak_threadviewer` t
WHERE NOT EXISTS (
SELECT uid
FROM `prak_users` u
WHERE t.uid = u.uid
)
frage ich ab, welche uid's in der Tabelle "threadviewer" vorhanden, aber als user nicht mehr in der entsprechenden Tabelle zu finden sind. Das Ergebnis wird korrekt ausgegeben.
Wenn ich aber nun
Code:
DELETE FROM `prak_threadviewer` t
WHERE NOT EXISTS (
SELECT uid
FROM `prak_users` u
WHERE t.uid = u.uid
)
durchführen möchte, erhalten ich einen MySQL Syntax fehler...
Wo ist der denn versteckt?
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Wie lautet denn der genau Fehler? Ich habe NOT EXISTS noch nie benutzt.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Fehlermeldung:
Zitat:#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 't WHERE NOT EXISTS ( SELECT uid FROM `prak_users` u WHERE t.uid = u.uid ' at line 1
Wenn es tatsächlich an der MySQL-Version (5.1.56-0.dotdeb.0) liegen würde, dann frage ich mich, warum SELECT durchgeführt wird, aber DELETE nicht.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Das Syntax bei der Befehle unterscheidet sich stark, ich schätze so geht es einfach nicht.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
22.04.2011, 11:07
(Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2011, 11:24 von Jockl.)
Ok, habe gerade gelesen, dass MySQL die Funktion DELETE tatsächlich in diesem Fall nicht unterstützt. Muss ich mir also anders behelfen und darf das "NOT EXISTS" nicht nutzen....
Nachtrag:
so geht's
Code:
DELETE FROM `prak_threadviewer`
WHERE uid NOT IN (
SELECT `uid` FROM `prak_users`
)