Ошибка при вставке - код ошибки 1241. операнд должен содержать 1 столбец (столбцы) - PullRequest
2 голосов
/ 27 февраля 2020

Я получаю эту ошибку:

Код ошибки 1241. Операнд должен содержать 1 столбец (ы)

INSERT INTO 66_stock (
    product_stock_id,
    stock_product, 
    stock_product_categories, 
    stock_product_region, 
    stock_product_type, 
    stock_product_ranked, 
    stock_product_status
    )
VALUES (
    66, 
    'testaarea',
    (
        SELECT 
            product_categories, 
            product_region, 
            product_type, 
            product_ranked, 
            product_status 
        FROM website_products 
        WHERE product_id = 66
    )
);

Можете ли вы помочь мне?

1 Ответ

3 голосов
/ 27 февраля 2020

MySQL ожидает, что подзапрос вернет один столбец - чего он не делает.

Вы можете переписать это как оператор INSERT ... SELECT, как показано ниже:

INSERT INTO 66_stock (
    product_stock_id,
    stock_product, 
    stock_product_categories, 
    stock_product_region, 
    stock_product_type, 
    stock_product_ranked, 
    stock_product_status
)
SELECT 
    product_id, 
    'testaarea', 
    product_categories, 
    product_region, 
    product_type, 
    product_ranked, 
    product_status 
FROM website_products 
WHERE product_id = 66;
...