Ich habe eine Tabelle story_category
in meiner Datenbank mit fehlerhaften Einträgen. Die nächste Abfrage gibt die beschädigten Einträge zurück:
SELECT *
FROM story_category
WHERE category_id NOT IN (
SELECT DISTINCT category.id
FROM category INNER JOIN
story_category ON category_id=category.id);
Ich habe versucht, sie zu löschen und auszuführen:
DELETE FROM story_category
WHERE category_id NOT IN (
SELECT DISTINCT category.id
FROM category
INNER JOIN story_category ON category_id=category.id);
Aber ich erhalte den nächsten Fehler:
1093 - Sie können die Zieltabelle 'story_category' für die Aktualisierung in der FROM-Klausel nicht angeben
Wie kann ich dieses Problem lösen?
5 Stimmen
Verwandt: stackoverflow.com/a/14302701/238419
3 Stimmen
Es sieht so aus, als ob der Feature Request im MySQL Bug Tracker hier ist: keine Aktualisierung einer Tabelle und Auswahl aus derselben Tabelle in einer Unterabfrage möglich
1 Stimmen
MariaDB 10.3 ermöglicht die Selbstreferenzierung in UPDATE/DELETE