将一个字段复制到另一个字段:“子查询返回超过1行”

时间:2014-07-31 13:14:48

标签: subquery

这里我们有查询:

UPDATE ps_product_lang_copy 
    SET description =
    ( SELECT description
        FROM ( SELECT description
                FROM `ps_product_lang_copy`
                    WHERE id_lang = 5
                    ) t
    )
    WHERE id_lang IN (1,2,3,4);

我正在尝试做这件事:

我在桌子上有一个字段,称为“描述”

此表中的每一行都有一个'id_lang'

我希望将每行(而不仅仅是一行)的字段“描述”从id_lang = 5复制到其他行的“描述”,其中包含id_lang IN(1,2,3,4)但是系统,用查询告诉我:子查询返回超过1行

我在堆栈溢出时阅读了很多,但实际上无法修复我的代码:(

编辑:

我自己解决,我会在这里发帖帮助对方


    UPDATE ps_product_lang
    INNER JOIN ps_product_lang_copy
    ON ps_product_lang.id_product = ps_product_lang_copy.id_product
    SET ps_product_lang.description = ps_product_lang_copy.description
    WHERE ps_product_lang_copy.id_lang = 5

ciuss

1 个答案:

答案 0 :(得分:0)

解决

UPDATE ps_product_lang
INNER JOIN ps_product_lang_copy
ON ps_product_lang.id_product = ps_product_lang_copy.id_product
SET ps_product_lang.description = ps_product_lang_copy.description
WHERE ps_product_lang_copy.id_lang = 5