MySQL SELECT GROUP_CONCAT和SUM

时间:2018-02-09 09:17:16

标签: mysql join sum

我有以下表格

apps表

--------------------------------
id | appointment_id | service_id
--------------------------------
1 | 258 | 4
2 | 258 | 5
--------------------------------

服务表

--------------------------------
id | price
--------------------------------
4 | 10
5 | 20
--------------------------------

我想要做的是从apps表中选择属于appointment_id 258的所有service_id,并从服务表中获取所有服务的SUM价格。

我已经看到使用GROUP_CONCAT我可以将service_id作为逗号分隔值获得但是使用子查询或内连接可能会更好吗?

1 个答案:

答案 0 :(得分:2)

这是你想要的吗?

SELECT
    SUM(s.price) AS total_price,
    GROUP_CONCAT(s.id) AS service_ids
FROM services s
INNER JOIN apps a
    ON s.id = a.service_id
WHERE
    a.appointment_id = 258;

在没有GROUP_CONCAT的情况下使用GROUP BY有点不寻常,但也许这是您的要求。