MYSQL 基于另一张表的筛选条件对指定表行值求和的实现方法
要实现跨两张关联表的筛选求和,使用JOIN关联两张表即可,具体SQL语句如下:
SELECT SUM(t2.cost) AS total_blue_cost FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id WHERE t1.colour = 'blue';
语句说明
- 通过
INNER JOIN关联两张表的id字段,确保只统计两张表中id匹配的有效记录 - 给两张表设置别名
t1、t2简化语句编写 - 筛选条件
WHERE t1.colour = 'blue'过滤出所有蓝色商品后,对关联到的cost字段求和,最终计算结果就是你需要的80
拓展用法
如果需要统计所有颜色对应的总成本,可以增加GROUP BY子句实现分组统计:
SELECT t1.colour, SUM(t2.cost) AS total_cost FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id GROUP BY t1.colour;
内容的提问来源于stack exchange,提问作者cato66
相关产品推荐
相关产品推荐

