我有2个表,一个称为“评论”,另一个称为“评论_description”

如果我加入以从两者中获取所有数据:

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

基于此,我想在两张表中删除与此标准一镜头的两张表中的行,还有任何技巧吗?

有帮助吗?

解决方案

是的, MySQL支持单个语句中多个表中的删除:

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

第一个多桌语法示例:

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

其他提示

除非你有 on cascade delete 或a delete trigger 设置您需要使用2个语句

级联会删除帮助吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top