mysql - SQL更新三个表

标签 mysql sql

我想设置一个表(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/

相关文章:

mysql - SQL:使用同一个表的结果更新多行

java - 如何在嵌套 SELECT 查询中使用 BeanMapHandler 进行字段到列映射(以键作为 ID)?

mysql - 基于 2 个 ID 列连接 2 个表是否可以?

sql - 在postgres中按日期合并多个值组

mysql - 同时添加和更新时出现无效列名sql错误

php - HTML 表单插入到 MYSQL

mysql - MariaDB 主从复制无法正常工作

mysql - mysql for Postgresql 中熟悉的PATINDEX函数

mysql - 将 MySQL PK 声明为唯一的唯一键

php - 查询结果问题的回显输出