0

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

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

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

objects_entity 中的 guid 是 entity.guid 的外键

我需要根据 subtype=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

这超出了我的范围,因为与上面相同的选择语句可以正常工作......该表存在。

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

4

2 回答 2

3

你需要更换

DELETE entities, objects_entity

DELETE a, b

因为你用aand给你的表起别名b

于 2012-07-30T18:33:10.473 回答
-1
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]
于 2012-07-30T18:34:38.367 回答