MySQL удалить запись с помощью Join не работает - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь удалить запись, используя JOIN, но не работает, поэтому я попытался с IN, она также не работает. Но если я поменяю DELETE на SELECT, он будет работать нормально.

Рабочая

SELECT * FROM T1 
     WHERE T1.ID IN (
     SELECT T1.ID FROM T1 
     JOIN T2 ON T2.PID = T1.ID WHERE T2.Email LIKE '%mitul%')

Не работает

DELETE FROM T1 
     WHERE T1.ID IN (
     SELECT T1.ID FROM T1 
     JOIN T2 ON T2.PID = T1.ID WHERE T2.Email LIKE '%mitul%')

DELETE FROM T1 
     JOIN T2 ON T2.PID = T1.ID WHERE T2.Email LIKE '%mitul%'

1 Ответ

4 голосов
/ 25 июня 2019

Вы можете упомянуть имя таблицы или псевдоним таблицы после оператора DELETE:

DELETE T1
FROM T1 
JOIN T2 ON T2.PID = T1.ID 
WHERE T2.Email LIKE '%mitul%'

Пожалуйста, найдите демо на дБ <> Fiddle

В случае, если вы хотите удалить совпадающую запись из обеих таблиц, используйте T1, T2 после оператора DELETE.

DELETE T1, T2
FROM T1 
JOIN T2 ON T2.PID = T1.ID 
WHERE T2.Email LIKE '%mitul%'

Демо для того же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...