mysql - 为什么这个复杂的删除 SQL 查询不起作用?
问题描述
我正在尝试实现一个“复杂”的 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 操作。
问题是执行此查询我收到此错误消息:
#42000您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“AS MC_PS INNER JOIN MarketDetails_CommodityDetails AS MD_CD ON MC_PS.mar”附近使用正确的语法
我怎样才能解决这个问题?也许将其用作子查询:
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
(使用身份证)
但如何?
解决方案
您要删除 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
推荐阅读
- javascript - 异步函数阻止事件循环 - 调用 app.get 方法时不呈现页面
- python-3.x - 如何在 OS X Catalina 上使用 cron 调度 python 脚本
- spartacus-storefront - 刷新令牌功能
- iphone - 如何在 Flutter 中为 iOS 的 CupertinoPicker/CupertinoDatePicker 添加/启用自动收报机声音?
- c++ - 使用 std::function 映射对象方法
- python - Python没有将正确的内容写入csv
- javascript - 如何将返回数据中的值传递给 vue.js 中的另一个脚本 [mounted()]
- python - 添加和删除 QTreeWidgetItems 的复选框
- c++ - 具有内存和隔离的 SQLite
- php - 提交tinymce编辑器后未发送数据库中的所有数据