对一列求和并将其与另一列相加 table
make sum of one column and join it with another table
我有两个 tables,我想要一个查询来获取 table 2 (addonAmount) 列的总和并将其与 table 1
table 1: subscriptions
+-------+--------+-------------+
| subId | userId | subDuration |
+-------+--------+-------------+
| 80 | 4607 | 6 |
| 81 | 4607 | 12 |
| 82 | 4608 | 18 |
+-------+--------+-------------+
table 2: subscriptionAddons
+---------+-------+-------------+
| addonId | subId | addonAmount |
+---------+-------+-------------+
| 15 | 80 | 4 |
| 16 | 80 | 2 |
+---------+-------+-------------+
我使用的查询:
SELECT subscriptions.*, subscriptionAddons.addonAmount
FROM subscriptions LEFT JOIN subscriptionAddons
ON subscriptions.subId = subscriptionAddons.subId;
我想要的
+-------+--------+-------------+------------+
| subId | userId | subDuration |addonAmount |
+-------+--------+-------------+------------+
| 80 | 4607 | 6 |6 |
| 81 | 4607 | 12 |NULL |
| 82 | 4608 | 18 |NULL |
+-------+--------+-------------+------------+
您需要按定义记录的列进行分组,并对您想要的列求和作为结果。
SELECT s.subId, s.userId, s.subDuration, sum(sa.addonAmount) as addonAmount
FROM subscriptions s LEFT JOIN subscriptionAddons sa
ON s.subId = sa.subId
GROUP BY s.subId, s.userId, s.subDuration;
我有两个 tables,我想要一个查询来获取 table 2 (addonAmount) 列的总和并将其与 table 1
table 1: subscriptions
+-------+--------+-------------+
| subId | userId | subDuration |
+-------+--------+-------------+
| 80 | 4607 | 6 |
| 81 | 4607 | 12 |
| 82 | 4608 | 18 |
+-------+--------+-------------+
table 2: subscriptionAddons
+---------+-------+-------------+
| addonId | subId | addonAmount |
+---------+-------+-------------+
| 15 | 80 | 4 |
| 16 | 80 | 2 |
+---------+-------+-------------+
我使用的查询:
SELECT subscriptions.*, subscriptionAddons.addonAmount
FROM subscriptions LEFT JOIN subscriptionAddons
ON subscriptions.subId = subscriptionAddons.subId;
我想要的
+-------+--------+-------------+------------+
| subId | userId | subDuration |addonAmount |
+-------+--------+-------------+------------+
| 80 | 4607 | 6 |6 |
| 81 | 4607 | 12 |NULL |
| 82 | 4608 | 18 |NULL |
+-------+--------+-------------+------------+
您需要按定义记录的列进行分组,并对您想要的列求和作为结果。
SELECT s.subId, s.userId, s.subDuration, sum(sa.addonAmount) as addonAmount
FROM subscriptions s LEFT JOIN subscriptionAddons sa
ON s.subId = sa.subId
GROUP BY s.subId, s.userId, s.subDuration;