组由结果通过SUM我有3个表:MySQL的 - 2列
user(id, name, id_school)
school(id, name)
result(id_user, stage1, stage2)
现在我想获得学校的排名 - 是2列的总和:stage1和stage2所有用户。
组由结果通过SUM我有3个表:MySQL的 - 2列
user(id, name, id_school)
school(id, name)
result(id_user, stage1, stage2)
现在我想获得学校的排名 - 是2列的总和:stage1和stage2所有用户。
试试这个查询。它只是assumption.please提供一些数据进行测试
SELECT
s.id,
s.name AS SchoolName
(r.S1 + r.S2) AS Rank
FROM school as s
LEFT JOIN user as u ON u.id_school = s.id
LEFT JOIN (SELECT id_user , SUM(stage1) as S1 , SUM(stage2) FROM result GROUP BY id_user) as r ON r.id_user = u.id
GROUP BY s.id
ORDER BY Rank DESC
我会做这样的事情:
SELECT school.name, SUM(result.result1 + result.result2)
FROM school LEFT JOIN user ON (user.id_school = school.id) LEFT JOIN result ON (result.id_user = user.id) GROUP BY school.id
希望它能帮助,祝你好运:)
显得过于简单:
select s.name as school, sum(stage1)+sum(stage2) as rank
from result r
join user u on u.id=r.id_user
join school s on s.id=u.id_school
group by s.id
我真的希望你有索引。
isnt s.name应该在groupby子句中吗? – DevelopmentIsMyPassion 2013-02-15 13:14:30
@AshReva不在mysql中,在这里称之为“优化”) – 2013-02-15 13:16:08
看来我确实错过了:( – DevelopmentIsMyPassion 2013-02-15 13:16:26
请显示您已经尝试过的陈述。 – 2013-02-15 12:53:35