我有2个表xcart_products,其中包含productid , meta_description
和许多其他字段。第二个表是xcart_extra_field_values,其中包含(productid fieldid and value
)
我需要复制fieldID = 1
xcart_extra_field_values
的值
到
meta_description
表的xcart_products
列Productid
相同。
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'
答案 0 :(得分:1)
您需要查询的第二个表名,因为它在查询中使用,即使您没有更改其中的任何数据。
更新xcart_products,xcart_extra_field_values
答案 1 :(得分:1)
您可以使用多表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;
答案 2 :(得分:1)
我希望这对你有用:
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