我正在尝试执行此SQL DELETE查询,该查询涉及一些 INNER JOIN 。我只想从名为 Market_Commodity_Price_Series 的主表中删除。我正在使用 MySql 。
这是我的疑问:
DELETE
FROM Market_Commodity_Price_Series AS MCPS
INNER JOIN MarketDetails_CommodityDetails AS MDCD
ON MCPS.market_commodity_details_id = MDCD.id
INNER JOIN MarketDetails AS MD
ON MDCD.market_details_id = MD.id
WHERE MD.market_name = "Kimironko"
问题是执行此查询时我收到以下错误消息:
#42000您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得正确的语法 靠近' MCPS INNER JOIN MarketDetails_CommodityDetails AS MDCD ON MCPS.market_co'在第2行
"奇怪"事情是这个查询的SELECT *版本工作正常,我获得了我期望的记录。
我想使用删除版本仅从 FROM 子句指定的主查询中删除这些记录。
有什么问题?我错过了什么?我该如何解决这个错误?
答案 0 :(得分:1)
您需要指定要从哪个表中删除记录:
(注意DELETE
之后的表别名)
DELETE MCPS
FROM Market_Commodity_Price_Series AS MCPS
INNER JOIN MarketDetails_CommodityDetails AS MDCD
ON MCPS.market_commodity_details_id = MDCD.id
INNER JOIN MarketDetails AS MD
ON MDCD.market_details_id = MD.id
WHERE MD.market_name = "Kimironko"