DELETE mit Subquerys verbingen

BlackJoe

Neuer Benutzer
Beiträge
2
Huhu, ich versuche gerade einen datensatz zu löschen anhand einer Unterabfrage.
Leider funktioniert das nicht, weil MySQL es anscheinend nicht erlaubt. Ich habe schon nachgegoogelt und auch diesen komischen Trick versucht, die Unteranfrage in einer zweiten Unteranfrage einzuwickeln, nix hat geholfen. Weiß jemand wie ich es sonst anders noch formulieren könnte? Ich verzweifle langsam ein bisschen.

Code:
DELETE FROM city WHERE city_id  IN (
SELECT city_id FROM city
WHERE NOT EXISTS(
SELECT * FROM address
WHERE city.city_id = address.city_id));

Würde mich sehr über Antworten freuen (-:
mit freundlichen Grüßen
Joe.
 
Werbung:
MySQL:

Code:
mysql> create table foo(id int);
Query OK, 0 rows affected (0.04 sec)

mysql> delete from foo where id in (select id from foo);
ERROR 1093 (HY000): You can't specify target table 'foo' for update in FROM clause

PostgreSQL:

Code:
test=*# create table foo(id int);
CREATE TABLE
test=*# delete from foo where id in (select id from foo);
DELETE 0

Wirst wohl über eine temp. Table gehen müssen. Oder halt eine bessere DB wählen.
 
Werbung:
Zurück
Oben