我有 2 个表xcart_products其中有 productid , meta_description
和许多其他字段。第二个表是xcart_extra_field_values,它有 ( productid fieldid and value
)
我需要复制fieldID = 1
的值xcart_extra_field_values
到
xcart_products
表中Productid
相同的meta_description
列。
UPDATE `xcart_products` SET meta_description = ( SELECT value FROM
xcart_extra_field_values WHERE fieldid = 1 AND
xcart_extra_field_values.productid = xcart_products.productid )
WHERE
xcart_extra_field_values.productid = xcart_products.productid ;
我写了上面的 SQL,但出现错误
#1054 - Unknown column 'xcart_extra_field_values.productid' in 'where clause'
我希望这对你有用:
UPDATE `xcart_products`, `xcart_extra_field_values` SET xcart_products.meta_description = xcart_extra_field_values.value
WHERE
xcart_extra_field_values.fieldid = 1
AND
xcart_products.productid = xcart_extra_field_values.productid
您需要查询的第二个表名,因为它在查询中使用,即使您没有更改其中的任何数据。
更新xcart_products,xcart_extra_field_values
多表UPDATE
语法来联接表:
UPDATE xcart_products JOIN xcart_extra_field_values USING (productid)
SET xcart_products.meta_description = xcart_extra_field_values.value
WHERE xcart_extra_field_values.fieldid = 1;