2016-11-16 47 views
0

我想知道我怎么可以这样做例子,请:SQL SUM最佳值在表和UPDATE

我有拖表:

user(id_user, points, id_subligue) 

subligue(id_subligue, points) 

我怎样才能由点得到最好的两个用户和通过id_subligue分组,总结一个加入subligue表。

例如:

user 
(
    user1, 10, 1; 
    user2, 15, 1; 
    user3, 20, 1; 
    user4, 10, 2; 
    user 5, 20, 2, 
    user6, 30, 2; 
    user7, 40, 2 
) 

subligue 
(
    1, 35; 
    2, 70 
) 

我试过:

select  SUM(user.points) AS TOTAL 

from  (SELECT user.points 
      FROM user 
      ORDER BY user.points DESC 
      LIMIT 2 
      ) user 

但我不知道如何使用的全部更新subligue表和id_subligue

很抱歉,如果我没有很好地解释,我会回答任何问题。提前致谢。

+0

主要问题是:你为什么要这样做?数据已经存在,那么为什么要把它放在另一个? –

+0

你问这个DBMS?请给它加标签。 –

+0

我需要subligue表中的dato通过subligues按点进行分类。在MySQL php – agustincola

回答

0

根据我的理解下面的查询会给你的愿望的结果

Select user.id_user,SUM(subligue.points) AS TOTAL from user inner join subligue on user.id_subligue=subligue.id_subligue 
order by subligue.points DESC 

//新的解决方案

select SUM(user.points) AS TOTAL 
from  (Select top 2 user.points from user inner join subligue on user.id_subligue=subligue.id_subligue 
order by user.points DESC) user 

//我们可以用where子句用于获取特定的结果为id_subligue

select SUM(user.points) AS TOTAL 
from  (Select top 2 user.points from user inner join subligue on user.id_subligue=subligue.id_subligue where user.id_subligue=1 
order by user.points DESC) user 

由于问题不是很清楚,如果这个解决方案不是我的然后让我知道你想要的最终输出。

+1

嗨,非常感谢。那不起作用。我的愿望输出是:在subigig表上,在点字段上,具有来自具有相同id_subligue的用户的两个最佳得分点的总和。 – agustincola

+0

@agustincola好吧让我更新解决方案 –

+0

@agustincola现在请试试这个,让我知道输出 –