我需要根据一个表中的查询
从两个表中删除表:实体 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语句正常工作....表存在。
任何想法我的语法有什么问题?非常感谢。
答案 0 :(得分:3)
您需要替换
DELETE entities, objects_entity
与
DELETE a, b
因为您使用a
和b
对表格进行别名化。
答案 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]