MySQL 可以基于多表查询更新数据。对于多表的 UPDATE 操作需要慎重,建议在更新前,先使用 SELECT 语句查询验证更新的数据与自己期望的是否一致。
下面我们建两张表,一张表为 product 表,用来存放产品信息,其中有产品价格字段 price;另外一张表是 product_price 表。现要将 product_price 表中的价格字段 price 更新为 product 表中价格字段 price 的 80%。
操作前先分别查看两张表的数据,SQL 语句和运行结果如下:
mysql> SELECT * FROM product;
+----+-----------+-----------------------+-------+----------+
| id | productid | productname | price | isdelete |
+----+-----------+-----------------------+-------+----------+
| 1 | 1001 | C语言中文网Java教程 | 100 | 0 |
| 2 | 1002 | C语言中文网MySQL教程 | 110 | 0 |
| 3 | 1003 | C语言中文网Python教程 | 120 | 0 |
| 4 | 1004 | C语言中文网C语言教程 | 150 | 0 |
| 5 | 1005 | C语言中文网GoLang教程 | 160 | 0 |
+----+-----------+-----------------------+-------+----------+
5 rows in