Mysql 关于连接域的求和

Mysql 关于连接域的求和,mysql,sql,Mysql,Sql,我有两张桌子: 团队: |-- id -- username --| |__ 1 __ user1 __| |__ 2 __ user2 __| |__ 3 __ user3 __| |-- id -- user_id -- amount --| |__ 1 __ 1 __ 1000 --| |__ 2 __ 1 __ 5000 --| |__ 3 __ 2 __ 3000 --| |__ 4 __ 1

我有两张桌子:

团队:

|-- id -- username --|
|__ 1  __ user1    __|
|__ 2  __ user2    __|
|__ 3  __ user3    __|
|-- id -- user_id -- amount --|
|__ 1  __ 1       __ 1000   --|
|__ 2  __ 1       __ 5000   --|
|__ 3  __ 2       __ 3000   --|
|__ 4  __ 1       __ 4500   --|
|__ 5  __ 2       __ 1000   --|
付款:

|-- id -- username --|
|__ 1  __ user1    __|
|__ 2  __ user2    __|
|__ 3  __ user3    __|
|-- id -- user_id -- amount --|
|__ 1  __ 1       __ 1000   --|
|__ 2  __ 1       __ 5000   --|
|__ 3  __ 2       __ 3000   --|
|__ 4  __ 1       __ 4500   --|
|__ 5  __ 2       __ 1000   --|
我希望获得用户的总付款。在单个查询中。结果如下:

|-- user_id -- username -- total_payment --|
|__ 1       __ user1    __ 10500         --|
|__ 2       __ user2    __ 4000          --|

谢谢。

如果您只需要
用户id
而不需要
用户名
,则根本不需要加入,因为分组只需要针对
付款
中的
用户id
进行

SELECT 
  user_id, 
  SUM(amount) AS total
FROM Payments
GROUP BY user_id
编辑:该问题已被编辑,以便在输出中包含用户名,因此请使用下面的查询——连接是必要的

如果您想加入用户名,它是对
FROM
groupby
子句的简单添加

SELECT 
  Teams.user_id, 
  username,
  SUM(amount) AS total
FROM 
  Teams
  /* LEFT JOIN used in case a user has no payments -- will still show in the list */ 
  LEFT JOIN Payments ON Teams.user_id = Payments.user_id
GROUP BY 
  Teams.user_id, 
  Teams.username