mysql - 通过连接 3 个表来更新一个表

标签 mysql

我有 3 张 table :

  • tblproduct(pro_Id、数量、单价)
  • tblorderdetails(order_id、pro_Id、数量)
  • tblorder(order_id,totalAmount)

我打算连接这些表来更新tblorder 表中的totalAmount。这是我使用 MySql 控制台的查询:

UPDATE o
SET o.totalAmount = p.unitprice * d.qty
FROM tblorder o INNER JOIN tblorderdetails d
on o.order_id = d.order_id
INNER JOIN tblproduct p
on p.pro_Id = d.pro_Id;

这是我得到的错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use
near 'from tblorder o inner join tblorderdetails d

最佳答案

语法不正确,应该是这样的

UPDATE  tblorder o
INNER JOIN tblorderdetails d
on o.order_id = d.order_id
INNER JOIN tblproduct p
on p.pro_Id = d.pro_Id
SET o.totalAmount = p.unitprice * d.qty ;

关于mysql - 通过连接 3 个表来更新一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29524356/

相关文章:

带有 DELETE FROM 的 MySQL 语法?

sql - 在 MySQL 中选择多个唯一行

php - PHP-MySQL 中处理的日期时间/时间戳

java - 更新单个表的多行

mysql - 数据库结构、存储和组织数据

php - 使用 PHP 向 MySql 表插入字段

php - MySQL 连接适用于 Localhost 但不适用于网络服务器

mysql - 按相同计数选择行时出现问题

c# - 将单词 TOTAL 添加到 Gridview 的最后一行

mysql - 将 Apache Hadoop 数据输出存储到 Mysql 数据库