MySQL 多表记录删除
同时从多个 MySQL 表中删除记录通常会导致语法错误。本指南提供了有效的解决方案:
在 DELETE 语句中利用 JOIN
要从 pets
和 pets_activities
表中删除 order
超出给定值且 pet_id
匹配的条目,请使用 JOIN
:
<code class="language-sql">DELETE p, pa FROM pets p JOIN pets_activities pa ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id</code>
这会有效地删除两个表中的匹配记录。
指定目标表
或者,使用别名显式定义要删除的表:
<code class="language-sql">DELETE pa FROM pets_activities pa JOIN pets p ON pa.id = p.pet_id WHERE p.order > :order AND p.pet_id = :pet_id</code>
此示例仅从 pets_activities
中删除。
主要考虑因素
JOIN
之外,子查询或级联删除为多表删除提供了替代方法。JOIN
有助于在跨表删除期间保持引用完整性。以上是如何高效删除多个MySQL表中的记录?的详细内容。更多信息请关注PHP中文网其他相关文章!