我正在尝试将两个查询组合在一起而不确定方法。我对连接以及如何使用它们知之甚少。
我有两张桌子。
用户:
id,
email,
userNumber
余额:
id,
userNumber,
credit,
debit (multiple entries in which I use SUM - SUM group by userNumber)
我的单独查询工作正常如下,但我需要以某种方式将它们组合在一起:
SELECT SUM(credit) - SUM(debit) as 'balance' FROM balances GROUP BY userNumber
SELECT u.id, u.email, u.userNumber,
g.userNumber AS groupID,
g.debit AS debit,
g.credit AS credit
FROM user AS u
LEFT JOIN balances AS g ON u.userNumber = g.userNumber
我基本上需要将第一个表转换为userNumber
并平衡,然后使用它来加入另一个表。第二个表格不需要借助余额的借方或贷方。
答案 0 :(得分:1)
您可以使用此
SELECT u.id, u.email, u.userNumber,
g.userNumber AS groupID,
g.debit AS debit,
g.credit AS credit,
g.balance AS balance
FROM user AS u
LEFT JOIN (SELECT userNumber, SUM(credit) - SUM(debit) as 'balance' FROM balances GROUP BY userNumber) AS g ON u.userNumber = g.userNumber
答案 1 :(得分:0)
在不知道您想要什么样的格式的情况下,我建议您只将第一个聚合子查询LEFT JOIN
发送到第二个。
SELECT
u.id,
u.email,
u.userNumber,
g.userNumber AS groupID,
COALESCE(g.debit, 0) AS debit,
COALESCE(g.credit, 0) AS credit,
COALESCE(t.balance, 0) AS balance
FROM user AS u
LEFT JOIN balances AS g
ON u.userNumber = g.userNumber
LEFT JOIN
(
SELECT userNumber, SUM(credit) - SUM(debit) AS balance
FROM balances
GROUP BY userNumber
) t
ON u.userNumber = t.userNumber