如何循环MySQL查询并将结果作为单个结果集返回?使用函数还是prcedure?

时间:2015-09-16 14:15:45

标签: mysql database function stored-procedures

我有简单的查询,它根据用户ID

返回特定用户的计数和总和
select count(id) links ,sum(download_count) dowloads, user_id from file_list_user where user_id = 6

如何为所有user_id编写循环相同查询的函数/过程?

file_list_user表结构

+------+----------------+---------+
| id   | download_count | user_id |
+------+----------------+---------+
|  844 |             20 |       6 |
| 1192 |              4 |       7 |
| 1305 |              1 |       6 |
+------+----------------+---------+

唯一的user_id存储在另一个表用户

用户表结构

+---------+-------------+
| user_id | user_name   |
+---------+-------------+
|       6 | clain       |
|       8 | Mayor       |
|       9 | JohnRock    |
+---------+-------------+

我已经搜索了Stack Overflow中的大部分答案,但没有一个解决我的问题。有些人甚至过于复杂甚至理解。我正在寻找一个简单的解决方案,以便我可以调用此函数并将结果作为单个结果集表返回,类似于下面

+-------+----------+---------+
| links | dowloads | user_id |
+-------+----------+---------+
|    11 |       36 |       6 |
+-------+----------+---------+
|    15 |       10 |       8 |
+-------+----------+---------+
|    60 |       90 |       9 |
+-------+----------+---------+

1 个答案:

答案 0 :(得分:1)

使用group by子句代替where子句

select count(id) links ,sum(download_count) dowloads, user_id from file_list_user group by user_id