MySQL通过一个查询从2个表中删除

MySQL通过一个查询从2个表中删除,mysql,sql,Mysql,Sql,我需要根据一个表中的查询从两个表中删除 表:实体 guid:整数 子类型:整数 创建的时间:整数(Unix时间戳) 表:对象和实体 guid:整数 标题:正文 对象\实体中的guid是实体的外键。guid 我需要根据subtype=17删除两个表中的相关记录,并且实体中创建的时间大于14天(因此也要删除相关对象\u实体) 我非常不擅长SQL,通过查看示例,我创建了以下内容: DELETE entities, objects_entity FROM entities a INNER JOIN ob

我需要根据一个表中的查询从两个表中删除

表:实体 guid:整数 子类型:整数 创建的时间:整数(Unix时间戳)

表:对象和实体 guid:整数 标题:正文

对象\实体中的guid是实体的外键。guid

我需要根据subtype=17删除两个表中的相关记录,并且实体中创建的时间大于14天(因此也要删除相关对象\u实体)

我非常不擅长SQL,通过查看示例,我创建了以下内容:

DELETE entities, objects_entity FROM entities a INNER JOIN objects_entity b on b.guid = a.guid AND a.subtype =17 AND a.time_created < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 14 DAY))
这是我无法理解的,因为与上面相同的select语句正确地工作。。。。该表存在

你知道我的语法有什么问题吗?非常感谢。

您需要更换

DELETE entities, objects_entity

因为您正在使用
a
b
为表添加别名

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]

可能重复的
DELETE a, b
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM tbl_name[.*] [, tbl_name[.*]] ...
USING table_references
[WHERE where_condition]