【发布时间】:2021-12-26 02:34:21
【问题描述】:
我有 2 个包含项目数据和付款的表格。每个项目可能有多个付款行。 表 1:项目
id project_name
1 Test Project
2 Test Project 2
还有表 2:project_payments
id project_id payment_amount
1 1 100
2 1 200
3 1 100
4 2 150
5 2 200
我需要获取以下格式的数据
project_id payment_id payment amount total_received
1 1 100 400
1 2 200 400
1 3 100 400
2 4 150 350
2 5 200 350
即通过每个project_id的支付金额之和得到total_received
我已经写了以下
SELECT projects.id as project_id,
projects.*,
project_payments.*,
sum(project_payments.payment_amount)
FROM projects
JOIN project_payments on projects.id = project_payments.project_id
但它只从每个项目返回一行。我怎样才能得到上述数据。
【问题讨论】:
-
尝试左连接
SELECT projects.id as project_id, projects.*, project_payments.*, sum(project_payments.payment_amount) FROM projects LEFT JOIN project_payments on projects.id = project_payments.project_id -
This 应该回答你的问题
-
它只返回一行
-
SUM 在聚合函数中,您可能需要
GROUP BY,请参阅:dbfiddle.uk/… 的一些示例。