mysql - 为什么这个复杂的删除 SQL 查询不起作用?

标签 mysql sql database rdbms

我正在尝试实现一个“复杂”的 SQL 删除查询,但它不起作用。

这是我的查询:

DELETE
FROM Market_Commodity_Price_Series     AS MC_PS
INNER JOIN MarketDetails_CommodityDetails AS MD_CD
      ON MC_PS.market_commodity_details_id = MD_CD.id 
INNER JOIN MarketDetails                     AS MD
      ON  MD_CD.market_details_id = MD.id  
WHERE
      MD.localization_id = 1

我只想删除 Market_Commodity_Price_Series 中的所有行,但具有此 WHERE 条件。正如您所看到的,where 条件使用一些 JOIN 操作。

问题是执行此查询时我收到此错误消息:

#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS MC_PS INNER JOIN MarketDetails_CommodityDetails AS MD_CD ON MC_PS.mar' at line 2

我该如何解决这个问题?也许使用它作为子查询:

SELECT MC_PS.id
FROM Market_Commodity_Price_Series     AS MC_PS
INNER JOIN MarketDetails_CommodityDetails AS MD_CD
      ON MC_PS.market_commodity_details_id = MD_CD.id 
INNER JOIN MarketDetails                     AS MD
      ON  MD_CD.market_details_id = MD.id  
WHERE
      MD.localization_id = 1

(使用 ID)

但如何呢?

最佳答案

您想删除MC_PS,因此请在删除丢失的“MC_PS”后写入

DELETE MC_PS
FROM Market_Commodity_Price_Series     AS MC_PS
INNER JOIN MarketDetails_CommodityDetails AS MD_CD
      ON MC_PS.market_commodity_details_id = MD_CD.id 
INNER JOIN MarketDetails                     AS MD
      ON  MD_CD.market_details_id = MD.id  
WHERE
      MD.localization_id = 1

关于mysql - 为什么这个复杂的删除 SQL 查询不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50563414/

相关文章:

c# - 在 C# 中使用 ADO.NET 进行登录身份验证

mysql - 如何在 MySQL LIKE 子句中使用用户变量?

sql - SQL Server 函数性能不佳

sql - 主键可以包含数据库表中的空格吗?

c# - 从 sql server 2008 中获取/选择数据到数据 gridview

c# - 最佳实践?打开和关闭多连接,或 ado.net 的一个大打开连接

mysql - SQL 查询根据不同表中的条件从一个表中进行选择

java - SQL中的重复记录

php - mysql 请求中的 if else 条件

java - 从数据库中获取值并将该值用作 Selenium Webdriver 中的输入字段