Я не очень разбираюсь в SQL, и у меня возникла следующая проблема. Я использую MySql
У меня есть таблица с именем Market_Commodity_Price_Series, и мне нужно удалить некоторые записи из этой таблицы, используя вывод запроса как условие WHERE, поэтому я сделал что-то вроде этого:
DELETE FROM Market_Commodity_Price_Series
WHERE Market_Commodity_Price_Series.id = (SELECT MCPS.id
FROM Market_Commodity_Price_Series as MCPS
WHERE
month(MCPS.price_date) > 3
AND
year(MCPS.price_date) = 2018)
Этот запрос
(SELECT MCPS.id
FROM Market_Commodity_Price_Series as MCPS
WHERE
month(MCPS.price_date) > 3
AND
year(MCPS.price_date) = 2018)
вернуть n ID, который идентифицирует запись, которую необходимо удалить.
Проблема в том, что при выполнении этого запроса на удаление я получаю следующее сообщение об ошибке:
HY000: Вы не можете указать целевую таблицу Market_Commodity_Price_Series для обновления в предложении FROM
Почему? В чем проблема? Что мне не хватает? Как я могу исправить эту проблему?
Delete .. join
- person Jens   schedule 13.03.2018SET @id = (SELECT...); DELETE FROM...WHERE...id = @id;
. Сначала вы получаете свой идентификатор с помощью запроса SELECT, затем вы используете результат для своего DELETE - person Mickaël Leger   schedule 13.03.2018