2012-07-30 4 views
0
나는 하나 개의 테이블에서 쿼리를 기반으로 두 개의 테이블에서 삭제해야

는 MySQL은 하나 개의 쿼리에 두 테이블에서 삭제

테이블 : 엔티티 GUID : 정수 하위 유형 : TIME_CREATED 정수 : 정수 (유닉스 타임 스탬프)

테이블 : objects_entity GUID : 정수 제목 : 텍스트

objects_entity에 GUID를

을 entities.guid하는 외래 키3210

하위 유형 = 17 및 time_created는 엔티티에서 14 일 이상 경과하여 관련 테이블을 삭제해야합니다 (관련 오브젝트도 삭제하십시오)

저는 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)) 

그러나 이것은 오류가 있습니다 :이 만들었습니다 위의 동일한 select 문으로,

#1109 - Unknown table 'entities' in MULTI DELETE 

나를 넘어 올바르게 작동합니다 .... 테이블이 존재합니다.

내 구문에 잘못된 아이디어가 있습니까? 많은 감사합니다.

+0

가능한 중복 (http://stackoverflow.com/questions/1233451/delete-from-two-tables-in-one -query) –

답변

3

당신은 당신이 ab와 테이블을 앨리어싱 때문에

DELETE a, b 

DELETE entities, objects_entity 

를 교체해야합니다. [한 쿼리에서 두 테이블에서 삭제]의

+0

고마워요! 완벽하게 작동합니다. – bobomoreno

-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] 
관련 문제