【发布时间】:2020-05-02 10:30:12
【问题描述】:
我的数据库中有 3 个表。
表1:
+---------+----------+---------+-----+
| name | order_no | comment | sum |
+---------+----------+---------+-----+
| John | 1 | | |
| Dimitri | 3 | | |
| Peter | 6 | | |
+---------+----------+---------+-----+
表2:
+-------------+------------+-------+
| fk_order_no | fk_film_no | count |
+-------------+------------+-------+
| 1 | 10 | 20 |
| 1 | 15 | 15 |
| 3 | 15 | 30 |
| 3 | 16 | 16 |
| 6 | 69 | 37 |
+-------------+------------+-------+
表3:
+----------------------+---------+-------+
| name | film_no | price |
+----------------------+---------+-------+
| Pacific Rim | 10 | 16.5 |
| Pacific Rim Uprising | 15 | 13.3 |
| Pacifier | 16 | 11.01 |
| Package | 69 | 0.34 |
| Pagemaster | 22 | 0.14 |
| Painted Veil | 66 | 0.17 |
+----------------------+---------+-------+
我想更新 table1 的 sum 列。总和是这样计算的
sum (order_no = 1) = 20 (count from table2) * 16.5 (price from table3) + 15 (count from table2) * 13.3 (price from table 3)
sum(order_no = 3 )= 30 * 13.3 + 16 * 11.01
sum(order_no=6) = 37 * 0.34
table1 应该如下所示:
+---------+----------+---------+--------+
| name | order_no | comment | sum |
+---------+----------+---------+--------+
| John | 1 | | 529.5 |
| Dimitri | 3 | | 575.16 |
| Peter | 6 | | 12.58 |
+---------+----------+---------+--------+
【问题讨论】:
-
尝试用SQL写这个伪代码
-
你的问题是什么?
-
@NicoHaase。如何从 table1 更新列总和
-
到目前为止你尝试了什么?
-
我尝试了 Gordon 的答案,但出现错误:# 1054 - 'on Clause' 中的未知列 't2.fk_order_no'。 @NicoHaase
标签: mysql sql phpmyadmin