我可以在一个SQL语句中删除2个表中的行吗?

时间:2010-08-16 21:20:39

标签: mysql sql delete-row multi-table-delete

我有两个表名为“REVIEW”,另一个名为“REVIEW_DESCRIPTION”

如果我联接以获取两者的所有数据:

SELECT *
FROM reviews 
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183

基于此,我想删除两个表格中符合此条件的行,一次拍摄,任何提示?

3 个答案:

答案 0 :(得分:3)

是的,MySQL supports deletions from more than one table in a single statement

  

对于第一个多表语法,仅删除FROM子句之前列出的表中的匹配行。对于第二个多表语法,仅删除FROM子句(USING子句之前)中列出的表中的匹配行。结果是你可以同时从许多表中删除行,并有其他只用于搜索的表......

第一个多表语法示例:

DELETE reviews, reviews_description 
  FROM reviews r
  JOIN reviews_description rd
 WHERE reviews.reviews_id = reviews_description.reviews_id
   AND reviews.customers_id = 54183

答案 1 :(得分:1)

除非您有on cascade deletedelete trigger设置,否则您需要使用2个语句

答案 2 :(得分:0)

会级联删除帮助吗?