首页 > 解决方案 > 试图从一个表中删除另一个表中存在的记录

问题描述

我正在尝试从表 ersr2 中删除表 ersr 中存在的记录,但出现语法错误。

这是我的命令:

MariaDB> delete from ersr2 e2 where e2.child_id in (select e.child_id from ersr e);

但我收到以下语法错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'e2 where e2.child_id in (select e.child_id from ersr e)' at line 1

我觉得这很奇怪,因为以下命令有效:

MariaDB> select e2.* from ersr2 e2 where e2.child_id in (select e.child_id from ersr e)

任何帮助将不胜感激。

标签: mysqlmariadbsql-delete

解决方案


在delete子句中声明要删除的表(delete e2)

delete  e2
from ersr2 e2
INNER JOIN  ersr e ON e.child_id = e2.child_id 

并且您可以使用内部联接而不是 IN(sud 查询)子句


推荐阅读