【发布时间】:2017-03-20 10:14:16
【问题描述】:
以下是我的查询:
SELECT
u.id,
CONCAT(u.FirstName, ' ', u.LastName) as customer,
u.MobileNumber,
u.EmailId,
(
pmt.TotalCreditedAmt - trns.TotalDeductAmt
) as available_balance,
DATE_FORMAT(i.InvoiceDate, '%Y/%m/%d') as InvoiceDate,
pmt.TotalCreditedAmt,
trns.TotalDeductAmt
FROM
(`Users` as u)
INNER JOIN (
SELECT
Max(InvoiceDate) AS InvoiceDate,
Customer_id
FROM
Invoice
GROUP BY
Customer_id
) as i ON `i`.`Customer_id` = `u`.`Id`
LEFT JOIN (
SELECT
sum(CreditedAmount) AS TotalCreditedAmt,
UserId
FROM
Payment
where
PaymentSucc = "Yes"
GROUP BY
UserId
) as pmt ON `pmt`.`UserId` = `u`.`id`
LEFT JOIN (
SELECT
sum(Amount) AS TotalDeductAmt,
UserId
FROM
Transaction
GROUP BY
UserId
) as trns ON `trns`.`UserId` = `u`.`id`
WHERE
`u`.`UserType` = 'User'
AND `pmt`.`TotalCreditedAmt` - trns.TotalDeductAmt < '0'
ORDER BY
`u`.`EmailId` desc
我在以下一种情况下遇到问题:
来自该用户 ID 的用户 ID (1,2,3,4) 的用户 ID (1,2,3,4,5,6,7) 已完成付款。用户 ID (5,6,7)还没有完成支付。所以用户 id(5,6,7) 的条目不存在于支付表中。
和用户 ids(1,2,3,4,5,6,7) 已经完成交易并且他们的条目出现在交易表中。并且还会生成发票。
从上面的查询中,我只得到了用户 ids(1,2,3,4) 的记录,因为它的条目存在于支付表中。 我还想要记录谁的条目不存在于付款表中。 请问有人可以帮我解决我的问题吗?
【问题讨论】:
标签: php mysql group-by left-join inner-join