2012-07-30 70 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]