我可以在一个单一SQL语句中从2个表中删除行吗?
-
29-09-2019 - |
题
我有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个语句
级联会删除帮助吗?
不隶属于 StackOverflow