Удалить строки из нескольких таблиц можно двумя способами:
- Удалить строки из одной таблицы, определяя, какие строки удалять, ссылаясь на другую
таблица
- Удаление строк из нескольких таблиц одним оператором
Операторы DELETE с несколькими таблицами могут быть записаны в двух форматах. В следующем примере демонстрируется один синтаксис для запроса, который удаляет строки из таблицы t1, где значения идентификатора совпадают со значениями в таблице t2:
DELETE t1 FROM t1, t2 WHERE t1.id = t2.id;
Второй синтаксис немного отличается:
DELETE FROM t1 USING t1, t2 WHERE t1.id = t2.id;
Чтобы удалить совпадающие записи из обеих таблиц, используйте следующие операторы:
DELETE t1, t2 FROM t1, t2 WHERE t1.id = t2.id;
DELETE FROM t1, t2 USING t1, t2 WHERE t1.id = t2.id;
Предложения ORDER BY и LIMIT, обычно поддерживаемые UPDATE и DELETE, не допускаются, когда эти операторы используются для операций с несколькими таблицами.