Почему этот сложный запрос на удаление SQL не работает?

0

Я пытаюсь реализовать "сложный" запрос на удаление 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

(с использованием идентификатора)

но как?

Теги:
database
rdbms

1 ответ

2
Лучший ответ

Вы хотите удалить 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню