Как удалить из таблицы 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 шт):
Ответ найден, спасибо @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)


