2013-03-08 36 views

回答

1

the manual

您可以指定在DELETE声明多个表取决于WHERE子句中的特定条件,从一个或多个表中删除行。

多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 
    tbl_name[.*] [, tbl_name[.*]] ... 
    FROM table_references 
    [WHERE where_condition] 

对于多表的语法,DELETE删除从每个tbl_name满足条件的行。

对于第一个多表语法,只删除FROM子句之前列出的表中匹配的行。对于第二个多表语法,只删除FROM子句(USING子句之前)中列出的表中的匹配行。其效果是,你可以在同一时间删除多个表行,有仅用于搜索附加表:

DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 
WHERE t1.id=t2.id AND t2.id=t3.id; 

或者:

DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3 
WHERE t1.id=t2.id AND t2.id=t3.id; 
+0

感谢,让我尝试一下 – 2013-03-08 14:32:03