SQL 更新其他表中的表值



我有 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;

相关内容

  • 没有找到相关文章

最新更新