sql group-by包含两个表

pokxtpni  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(341)

你们能帮我对我的简单案例进行选择查询吗:

  1. Table A:
  2. UserID UserName
  3. 10 John
  4. 11 Mike
  5. 12 Matt
  6. Table B:
  7. SessionID UserID SessionTime
  8. 124 10 20
  9. 123 10 122
  10. 42 10 30
  11. 324 11 55
  12. 534 11 42
  13. 344 12 19
  14. 653 12 32

我需要这个结果:

  1. Result Table:
  2. UserName UserID TotalTime
  3. John 10 172
  4. Mike 11 97
  5. Matt 12 51

对于一个表b,这是有效的:

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

但我需要把用户名附加到最终结果上
谢谢您

3yhwsihp

3yhwsihp1#

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

在这里。我用了a表和b表

zc0qhyus

zc0qhyus2#

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

qxgroojn3#

您可以通过使用“联接”和“分组方式”来执行此操作:

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

注意:这将适用于1对多关系,如您的情况。

相关问题