2012-07-30 71 views
0

我需要从两个表中删除,基于在一个表中查询MySQL的从2个表删除与一个查询

表:实体 GUID:整数 亚型:整数 TIME_CREATED:整数(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

的[从两个表中删除在一个查询]可能重复(http://stackoverflow.com/questions/1233451/delete-from-two-tables-in-one - 查询) – 2012-07-30 18:32:41

回答

3

您需要

DELETE a, b 

更换

DELETE entities, objects_entity 

,因为你与ab混淆你的表。

+0

谢谢!作品完美 – bobomoreno 2012-07-30 19:51:59

-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]