Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL | Sie können die Zieltabelle „a“ nicht für die Aktualisierung in der FROM-Klausel angeben

Sie können nicht aus einer Tabelle löschen und dieselbe Tabelle in einer Unterabfrage referenzieren – nur eine Einschränkung von MySQL. So etwas wie das Folgende sollte funktionieren:

DELETE FROM table_a 
USING table_a
INNER JOIN table_b
    ON table_a.code = table_b.code
    AND table_b.id = table_a.b_id
    AND table_b.table = 'testTable'
WHERE table_a.object_id = 1 
    AND table_a.code = 'code' 

Der wichtige Teil ist USING . Wenn Sie die beiden Tabellen einfach zusammenführen, löschen Sie Datensätze aus beiden. USING weist MySQL an, diese Tabellen für die Verarbeitung zu verwenden, aber nur aus den Tabellen in FROM zu löschen Klausel.

http://dev.mysql.com/doc/refman/5.0 /de/delete.html