SQL GROUP BY涉及两个表

时间:2018-11-10 23:39:00

标签: mysql sql database-table

你们能帮我做一个简单案例的SELECT查询吗?

Table A:        
UserID  UserName
10      John
11      Mike
12      Matt


Table B:            
SessionID   UserID  SessionTime
124         10      20
123         10      122
42          10      30
324         11      55
534         11      42
344         12      19
653         12      32

我需要这个结果:

Result Table:               
UserName    UserID  TotalTime
John        10      172
Mike        11      97
Matt        12      51

对于一个表B,它起作用:

SELECT UserID, SUM(SessionTime) AS "Total Time"
FROM TableB
GROUP BY UserID;

但是我需要在最终结果中附加用户名

谢谢

3 个答案:

答案 0 :(得分:2)

您可以通过使用join和group by来实现:

select a.UserId, a.UserName, sum(b.SessionTime) as TotalTime
from tableA a
left join tableB b on a.UserId = b.UserId
group by a.UserId, a.UserName;

注意:这将适用于您的情况下的一对多关系。

答案 1 :(得分:2)

SELECT TableA.Username, TableA.User_ID, SUM(SessionTime) INNER JOIN
TableB ON TableA.User_ID = TableB.User_ID GROUP BY TableA.Username,
TableA.User_ID

答案 2 :(得分:0)

SELECT a.UserName as "UserName" 
      ,a.UserID as "UserID"
      ,sum(b.SessionTime) as "TotalTime" 
FROM a LEFT JOIN b 
ON a.UserID = b.UserID GROUP BY a.UserID

这里。我用了表a和表b