首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:将数据分散到3个表中

SQL:将数据分散到3个表中
EN

Stack Overflow用户
提问于 2014-11-29 14:25:04
回答 2查看 48关注 0票数 0

我正在试图获得一些统计数字的在线游戏,我坚持。我正在搜索一个SQL语句以获得底部的结果。

有三张桌子:

一个包含团队的表,每个表都有一个唯一的标识符。

代码语言:javascript
复制
table teams
---------------------
| teamid | teamname |
|--------|----------|
| 1      | team_a   |
| 2      | team_x   |
---------------------

一种有球员的表,每个表都有一个唯一的标识符,并且可以选择加入一个队,由其独特的茶杯组成。

代码语言:javascript
复制
table players
--------------------------------
| playerid | teamid | username |
|----------|--------|----------|
| 1        | 1      | user_a   |
| 2        |        | user_b   |
| 3        | 2      | user_c   |
| 4        | 2      | user_d   |
| 5        | 1      | user_e   |
--------------------------------

最后是一个有事件的表。事件(持续时间以秒为单位)通过玩家in与其中一个玩家相关。

代码语言:javascript
复制
table events.
-----------------------
| playerid | duration |
|----------|----------|
| 1        | 2        |
| 2        | 5        |
| 3        | 3        |
| 4        | 8        |
| 5        | 12       |
| 3        | 4        |
-----------------------

我试图得到一个结果,所有团队成员的持续时间都是被总结出来的。

代码语言:javascript
复制
result
--------------------------
| teamid | SUM(duration) |
|--------|---------------|
| 1      | 14            | (2+12)
| 2      | 15            | (3+8+4)
--------------------------

我尝试了几种联合的组合,其中IN,JOIN和GROUP,但没有得到正确的结果。我正在使用PostgreSQL和PHP。有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-29 14:33:43

只需将sumgroup by结合使用

代码语言:javascript
复制
select t.teamid, sum(e.duration)
from team t
   join players p on t.teamid = p.teamid
   join events e on p.playerid = e.playerid
group by t.teamid

如果您需要返回所有团队,即使它们没有事件,则可以使用outer join

票数 0
EN

Stack Overflow用户

发布于 2014-11-29 14:54:29

尝尝这个

代码语言:javascript
复制
SELECT teamid, Sum(duration), 
    AS LineItemAmount, AccountDescription
FROM teams
    JOIN teams ON teams.teamid = players.teamid
    JOIN events ON players.playersid = events.playersid
    JOIN GLAccounts ON InvoiceLineItems.AccountNo = GLAccounts.AccountNo
    GROUP BY teamid

http://www.w3computing.com/sqlserver/inner-joins-join-two-tables/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27203301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档