我想从数据库中同时删除多个表,我该如何实现这样的目标? 是否有任何特定的查询或方法?
答案 0 :(得分: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;