Я пытаюсь реализовать "сложный" запрос на удаление 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. Как вы можете видеть, где условие использует некоторую операцию JOIN.
Проблема в том, что выполнение этого запроса я получаю это сообщение об ошибке:
# 42000Вы имеете ошибку в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "AS MC_PS INNER JOIN MarketDetails_CommodityDetails AS MD_CD ON MC_PS.mar" в строке 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
(с использованием идентификатора)
но как?
Вы хотите удалить 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