我不太喜欢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不能在FROM子句中指定要更新的目标表“市场商品价格系列”
为什么?怎么了?我错过了什么?我怎样才能解决这个问题?

最佳答案

对不起的,
这绝对是个简单的任务:

DELETE FROM Market_Commodity_Price_Series
WHERE MONTH(price_date) > 3 AND YEAR(price_date) = 2018

07-28 08:05