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

时间:2012-07-30 18:30:51

标签: mysql sql

我需要根据一个表中的查询

从两个表中删除

表:实体 guid:整数 子类型:整数 time_created:integer(Unix时间戳)

表:objects_entity guid:整数 标题:文字

objects_entity中的guid是entities.guid的外键

我需要根据子类型= 17删除两个表中的相关记录,并且time_created在实体中超过14天(因此也删除相关的objects_entity)

我在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))

但这会产生错误:

#1109 - Unknown table 'entities' in MULTI DELETE

这超出了我,因为与上面相同的select语句正常工作....表存在。

任何想法我的语法有什么问题?非常感谢。

2 个答案:

答案 0 :(得分:3)

您需要替换

DELETE entities, objects_entity

DELETE a, b

因为您使用ab对表格进行别名化。

答案 1 :(得分:-1)

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

OR

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