[英]SQL update table values from a different table
我有2個表xcart_products,它們有productid , meta_description
和許多其他字段。 第二個表是xcart_extra_field_values,它有( productid fieldid and value
)
我需要復制fieldID = 1
的xcart_extra_field_values
成
xcart_products
表的meta_description
列,其中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'
您需要為查詢提供第二個表名,因為它在查詢中使用,即使您沒有更改其中的任何數據。
更新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;
我希望這對你有用:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.