Ошибка синтаксиса SQL — ВСТАВИТЬ В … ВЫБЕРИТЕ

#sql

#sql

Вопрос:

Когда я запускаю эту инструкцию в MySQL Workbench, я получаю синтаксическую ошибку рядом с инструкцией SELECT.

 INSERT INTO 
    rare_csshop.cscart_product_features_values
        (feature_id, product_id, value, lang_code)
VALUES
    SELECT DISTINCT
    "10" As Feature, t1.product_id, CONCAT(t2.NHeigth, "" H x ", t2.NWidth, "" W x ", t2.NDepth, "" D") As Dimensions, "EN" As Lang
FROM
    rare_csshop.cscart_product_descriptions AS t1, 
    rare_csshop.products AS t2
WHERE
    t1.product = t2.NName
  

Оператор select работает нормально сам по себе. Я что-то упустил?

Ответ №1:

Вам нужно удалить слово VALUES из вашего запроса (вы вставляете либо значения, ЛИБО результат ВЫБОРА).

Ответ №2:

Снимите ЗНАЧЕНИЯ перед инструкцией select. Это должно сработать.

 INSERT INTO 
    rare_csshop.cscart_product_features_values
        (feature_id, product_id, value, lang_code)
    SELECT DISTINCT
    "10" As Feature, t1.product_id, CONCAT(t2.NHeigth, "" H x ", t2.NWidth, "" W x ", t2.NDepth, "" D") As Dimensions, "EN" As Lang
FROM
    rare_csshop.cscart_product_descriptions AS t1, 
    rare_csshop.products AS t2
WHERE
    t1.product = t2.NName
  

Я не знаю почему, но я столкнулся с этой ситуацией совсем недавно. Может быть, когда мы указываем ЗНАЧЕНИЯ, он принимает только значения, а не результаты запроса.

Комментарии:

1. Добро пожаловать в Stackoverflow. Просто хотел сообщить вам, что вы можете отформатировать свой код, выбрав его и нажав Ctrl K или {} кнопку. Я уже позаботился об этом для вас.