2013-03-08 67 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