Как удалить из таблицы chat записи по id полученные из select запроса?

Я пытаюсь удалить пользователя из приложения, но сперва мне нужно удалить все связанные с ним записи из таблицы chat. (т.е. для удаления пользователя мне нужно удалить все сообщения из задач в которых он участвует -> удалить все задачи в которых он участвует -> удалить его из всех проектов -> и наконец удалить его из таблицы users).

Я делаю следующий запрос:

SELECT C.*, PT.user_id, PT.project_id FROM chat C LEFT JOIN projects_tasks PT ON C.task_id=PT.id WHERE PT.user_id=27 

Он мне показывает те данные, которые я хочу удалить из таблицы chat.

введите сюда описание изображения

Теперь, я хочу удалить записи из chat по полученным id

DELETE FROM chat WHERE id IN (SELECT C.*, PT.user_id, PT.project_id FROM chat C LEFT JOIN projects_tasks PT ON C.task_id=PT.id WHERE PT.user_id=27)

Но выдается ошибка: введите сюда описание изображения

Как мне решить эту проблему?

Моя структура БД: введите сюда описание изображения


Ответы (1 шт):

Автор решения: lumberspin

Ответ найден, спасибо @InDevX и https://stackoverflow.com/questions/4429319/you-cant-specify-target-table-for-update-in-from-clause

Нужный мне запрос: DELETE FROM chat WHERE id IN (SELECT C.id FROM (SELECT * FROM chat) C LEFT JOIN projects_tasks PT ON C.task_id=PT.id WHERE PT.user_id=27)

→ Ссылка