簡體   English   中英

來自不同表的SQL更新表值

[英]SQL update table values from a different table

我有2個表xcart_products,它們有productid , meta_description和許多其他字段。 第二個表是xcart_extra_field_values,它有( productid fieldid and value

我需要復制fieldID = 1xcart_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM