Це посилання виявилось корисним
Скопійовано звідти
Часто потрібно видалити деякі записи з таблиці на основі критеріїв іншої таблиці. Як видалити одну з цих таблиць, не видаляючи записи в обох таблицях?
DELETE DeletingFromTable
FROM DeletingFromTable INNER JOIN CriteriaTable
ON DeletingFromTable.field_id = CriteriaTable.id
WHERE CriteriaTable.criteria = "value";
Ключ у тому, що ви вказали назву таблиці, з якої потрібно видалити, як SELECT. Отже, JOIN і WHERE роблять вибір та обмеження, а DELETE - видалення. Однак ви не обмежуєтесь лише одним столом. Якщо у вас є стосунки багато-до-багатьох (наприклад, журнали та передплатники, до яких приєдналася передплата), і ви видаляєте підписку, вам також потрібно видалити будь-які потенційні записи з моделі об'єднання.
DELETE subscribers, subscriptions
FROM subscribers INNER JOIN subscriptions
ON subscribers.id = subscriptions.subscriber_id
INNER JOIN magazines
ON subscriptions.magazine_id = magazines.id
WHERE subscribers.name='Wes';
Видалення записів із об’єднанням також можна виконати за допомогою ЛІВОГО ПРИЄДНАННЯ та КУДИ, щоб перевірити, чи є об’єднана таблиця НУЛЬКОЮ, щоб можна було видалити записи в одній таблиці, які не мають збігу (наприклад, під час підготовки до додавання зв’язку. ) Приклад поштового повідомлення.