我的 MySQL 数据库中有 3 个表。表格和列如下例所示
表用户
id, name, dob, gross_salary
----------------------------------
1, test1, 12 Mar 90, 50000
2, test2, 10 Jan 85, 45000
表工资
ida, date, allowence_paid
------------------------------
1, 10 Jul 13, 12000
2, 10 Aug 13, 23000
2, 12 Aug 13, 1000
1, 15 Aug 13, 15000
表贷款
id, date, loan_amount
--------------------------
2, 05 Jul 13, 500
1, 05 Aug 13, 2500
1, 06 Aug 13, 1200
我需要将这三个表合并到 8 月 13 日的结果中,例如
id, name, allowence_paid, loan_Amount, paid
--------------------------------------------
1, test1, 15000, 3700, 11300
2, test2, 24000, 0, 24000
在我的例子中,需要两个不同表的两列的 SUM 连接到另一个表。
我可以获得有关查询的帮助吗?我已经按照 MySQL JOIN with SUM and 3 tables 进行了实验失败了。
最佳答案
这似乎可行:
select *, allowence_paid-loan_amount as paid
from
(
select User.id as UserId, User.name as UserName, sum(allowence_paid) as allowence_paid
from Wage join User on Wage.ida=User.id
and Wage.date between '2013-08-01 00:00:00' and '2013-08-31 23:59:00'
group by UserId
) W JOIN
(
select User.id as UserId, User.name as UserName, sum(coalesce(loan_amount,0)) AS loan_amount
from Loan right outer join User on Loan.id=User.id
and Loan.date between '2013-08-01 00:00:00' and '2013-08-31 23:59:00'
group by UserId
) L ON W.UserId = L.UserId
SQL fiddle here .
关于php - MySQL 查询从 3 个表中获取 SUM 和合并结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20028943/