来自不同表的SQL更新表值

时间:2012-06-07 18:20:26

标签: mysql phpmyadmin sql-update x-cart

我有2个表xcart_products,其中包含productid , meta_description和许多其他字段。第二个表是xcart_extra_field_values,其中包含(productid fieldid and value

我需要复制fieldID = 1

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

3 个答案:

答案 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