【问题标题】:Why this SQL DELETE query using INNER JOIN is not working? [duplicate]为什么这个使用 INNER JOIN 的 SQL DELETE 查询不起作用? [复制]
【发布时间】:2018-08-21 20:34:46
【问题描述】:

我正在尝试执行涉及一些 INNER JOIN 的 SQL DELETE 查询。我只想从名为 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 第 2 行的 MCPS.market_co'

“奇怪”的是这个查询的 SELECT * 版本运行良好,我获得了我期望的记录。

我想使用删除版本仅从 FROM 子句指定的主查询中删除这些记录。

怎么了?我错过了什么?我该如何解决这个错误?

【问题讨论】:

    标签: mysql sql database sql-delete rdbms


    【解决方案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"
    

    【讨论】:

      猜你喜欢
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 2012-09-26
      • 2012-11-04
      相关资源
      最近更新 更多