我想设置一个表(A)的列中所有项目的值,与另一个表(C)中给定的条件相关。为了解决这项工作,我提到使用这个查询:
Update Table1 AS A
SET A.Value = '1'
FROM Table1 AS A
INNER JOIN Table2 AS B
ON A.item = B.item
INNER JOIN Table3 AS C
ON B.item = C.item
WHERE C.Value = '2'
遗憾的是,到目前为止这还不起作用,那么,我的错误在哪里?
原代码如下:
Update wp_postmeta
SET A.meta_value = '0.25'
FROM wp_postmeta AS A
INNER JOIN wp_woocommerce_order_itemmeta AS B
ON B.meta_id = A.meta_id
INNER JOIN wp_woocommerce_order_item AS C
ON C.order_item_id = B.order_item_id
WHERE C.Value = '%250g%'
最佳答案
问题可能出在第一行的“as A”上。尝试一下
Update Table1
SET Value = '1'
FROM Table1 AS A
INNER JOIN Table2 AS B
ON A.item = B.item
INNER JOIN Table3 AS C
ON B.item = C.item
WHERE C.Value = '2'
编辑:在您的具体代码中,我认为 SET 之后的 A. 是问题所在。尝试:
Update wp_postmeta
SET meta_value = '0.25'
FROM wp_postmeta AS A
INNER JOIN wp_woocommerce_order_itemmeta AS B
ON B.meta_id = A.meta_id
INNER JOIN wp_woocommerce_order_item AS C
ON C.order_item_id = B.order_item_id
WHERE C.Value = '%250g%'
说明:在语句的“update...set”部分的上下文中,缩写“A”对 sql server 来说没有任何意义。
编辑:或者您可以按照下面评论中 i486 的建议进行操作。
关于mysql - SQL更新三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312455/