Использование двух синтаксисов SELECT FROM в задаче INSERT INTO - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть таблица с именем ps_manufacturer_lang с 4 столбцами с именами id_manufacturer и id_lang и description и short_description.

  1. id_manufacturer должны быть значения изSELECT id_manufacturer FROM ps_manufacturer.

  2. id_lang должно быть 1.

  3. description должно иметь значения от SELECT description FROM prestashop_old.ps_category_lang WHERE id_lang='1' AND id_category IN ( SELECT id_category FROM prestashop_old.ps_category WHERE id_parent='241')

  4. short_description должно быть NULL.

Вот мой код:

INSERT INTO ps_manufacturer_lang (id_manufacturer, id_lang, description, short_description)
SELECT
    id_manufacturer
FROM ps_manufacturer
    1,
SELECT
    description
FROM prestashop_old.ps_category_lang 
WHERE 
    id_lang='1' 
    AND id_category IN (
        SELECT id_category FROM prestashop_old.ps_category WHERE id_parent='241'
    )
    NULL

Ошибка:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,
SELECT
    description
FROM prestashop_old.ps_category_lang
WHERE
    ' at line 5

Кажется, невозможно использовать два синтаксиса SELECT FROM внутри одного INSERT INTO.

Любая помощь по этому поводу?

Спасибо,

1 Ответ

0 голосов
/ 06 ноября 2019

Хммм. ,,Я подозреваю, что вам нужна логика, подобная этой.

INSERT INTO ps_manufacturer_lang (id_manufacturer, id_lang, description, short_description)
    SELECT m.id_manufacturer, 1, cl.description, NULL
    FROM ps_manufacturer m join
         prestashop_old.ps_category_lang  cl
         ON cl.id_lang = 1 and
            cl.id_category IN (
                SELECT id_category
                FROM prestashop_old.ps_category
                WHERE id_parent = 241
               );

Сначала проверьте select, чтобы увидеть, возвращает ли он то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...