2016-11-16 170 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現在請試試這個,讓我知道輸出 –