PHP 中mysql 多表查询..在线求高手。。有分

表user中存放用户信息字段有idname等如idname1张三2李四表main中写入的是操作信息字段有idtime等等如idtime1200130024002300现在... 表user 中 存放 用户信息 字段有 id name 等
如 id name
1 张三
2 李四
表main 中 写入的 是操作信息 字段有 id time 等等
如 id time
1 200
1 300
2 400
2 300

现在想作一个 查询 先查找 user表中 共有多少人 然后 将 user中每个人 的 time 累加 并输出
我用了 for ()
{
for()
}

结果 浏览器无响应了。。。。求大神帮忙给个完整的 代码思路
for ()

查换 user中所有的人 获取 到此人的ID
for()
{
将 user表中获取的的ID 再对应 main表中 查询。
}


这样 数据量太大。。页面 反映不过来了。。。。求大神啊。
展开
 我来答
清友灵0cJ
2013-01-04 · TA获得超过251个赞
知道小有建树答主
回答量:450
采纳率:100%
帮助的人:291万
展开全部
用户数:SELECT COUNT(*) FROM user
时间合计:SELECT sum(time) FROM main group by id
下面这个语句一次能搞定,但效率我上估计不是太高
SELECT sum(time) as sum_time,(select COUNT(*) FROM user) as user_num FROM time group by id
追问
如果我查的是每一个 有人 总 TIME 呢?我应该用哪钟循环
追答
SELECT sum(time) FROM main group by id
输出的就是每个人的总TIME
SELECT sum(time) as sum_time,(select COUNT(*) FROM user) as user_num FROM time group by id
这个也是运行后会把相同人的time累计,不需要循环的。
onelovecat
2013-01-04 · TA获得超过174个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:78.6万
展开全部
这样行不行
select
id,name,(select sum(time) from main where main.id =user .id) as time
from user
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcswsm
2013-01-04 · TA获得超过488个赞
知道小有建树答主
回答量:716
采纳率:0%
帮助的人:509万
展开全部
如果你的数据非常大,无论用什么样的联合查询都会导致服务器无响应。这样的查询一般都要分页,每个分页做分页统计,避免因为数据流量大导致服务器无响应
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linlindaily
2013-01-05
知道答主
回答量:44
采纳率:0%
帮助的人:27.1万
展开全部
select a.name ,sum(b.time) from user a left join main b on a.id = b.id group by a.id
一句话就ok了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式