MyBB.de Forum
Problem mit MySQL Delete - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Problem mit MySQL Delete (/thread-23315.html)



Problem mit MySQL Delete - Jockl - 22.04.2011

Ich habe mal wieder ein kleines Problem und komme nicht weiter... Wink

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... Sad

Wo ist der denn versteckt?


RE: Problem mit MySQL Delete - StefanT - 22.04.2011

Wie lautet denn der genau Fehler? Ich habe NOT EXISTS noch nie benutzt.


RE: Problem mit MySQL Delete - Jockl - 22.04.2011

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.


RE: Problem mit MySQL Delete - StefanT - 22.04.2011

Das Syntax bei der Befehle unterscheidet sich stark, ich schätze so geht es einfach nicht.


RE: Problem mit MySQL Delete - Jockl - 22.04.2011

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 Wink
Code:
DELETE FROM `prak_threadviewer`
WHERE uid NOT IN (
SELECT `uid` FROM `prak_users`
)