关于mysql的字段结果求和

zx32342342 发布于 2011/02/16 15:00
阅读 1K+
收藏 1

需要的结果是, 找出status 字段等于1的找出来, 然后根据这个结果把字段user值相同的所有记录分组, 并求每组num字段的总和, 同时还要获取user对应表2的name

最终的结果就是每条记录里user对应一个num

希望sql能进来少点, 别连mysql次数太多

 

最初我是这样做的, 首先

SELECT DISTINCT user FROM table WHERE `status`='1' LEFT JOIN table2 ON (table.user=table2.user)

然后用php循环每条记录

SELECT SUM(`num`) FROM table WHERE `user`=循环中的每个user

但是这样如果user记录很多, 那就重复连数据库几次了

 

好像不对, user没有直接对应table2, 需要另外一个中间表, 晕了

加载中
0
红薯
红薯

一条SQL语句搞定:

SELECT t2.name,SUM(t1.num) FROM table1 t1 LEFT JOIN table2 t2 ON t1.user=t2.user GROUP BY t1.user

0
z
zx32342342

引用来自#2楼“红薯”的帖子

一条SQL语句搞定:

SELECT t2.name,SUM(t1.num) FROM table1 t1 LEFT JOIN table2 t2 ON t1.user=t2.user GROUP BY t1.user

漏了个status, 不过我的需要刚才写错了, 还需要再牵扯到一个表, 不过貌似也只是多left join下 我先试试

返回顶部
顶部