1

我有 2 个表 xcart_productsproductid , meta_description 和许多其他字段。第二张表是 xcart_extra_field_values 有 ( productid fieldid and value)

我需要复制的fieldID = 1xcart_extra_field_values

进入

表中相同的meta_description列。xcart_productsProductid

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'
4

3 回答 3

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
于 2012-06-07T18:30:05.177 回答
1

您需要查询的第二个表名,因为它在查询中使用,即使您没有更改其中的任何数据。

更新 xcart_products、xcart_extra_field_values

于 2012-06-07T18:25:22.193 回答
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;
于 2012-06-07T18:25:29.653 回答