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中文網其他相關文章!