Home > Database > Mysql Tutorial > How to Properly Delete Records from Multiple Tables in MySQL?

How to Properly Delete Records from Multiple Tables in MySQL?

Susan Sarandon
Release: 2025-01-19 10:31:09
Original
555 people have browsed it

How to Properly Delete Records from Multiple Tables in MySQL?

MySQL multi-table record deletion skills

Deleting records from multiple MySQL tables simultaneously is a complex task. Directly using a DELETE statement with a WHERE clause that contains multiple table references will usually fail. For example, the following code:

DELETE FROM `pets` p,
            `pets_activities` pa
      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id
        AND pa.`id` = p.`pet_id`
Copy after login

Usually produces errors like this:

Uncaught Database_Exception [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'p, pets_activities pa...'

The correct approach is to use the JOIN keyword. The modified code is as follows:

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
Copy after login

If you only need to delete records in the pets_activities table, you can use the following code:

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
Copy after login

These methods can effectively delete records from multiple tables in MySQL. Of course, there are other methods for single-table deletion involving referential integrity, such as EXISTS, NOT EXISTS, IN, and NOT IN. However, the above MySQL syntax provides a general solution for multi-table deletion, especially when dealing with complex deletion scenarios.

The above is the detailed content of How to Properly Delete Records from Multiple Tables in MySQL?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template