我正在使用mysql。
当我使用这样的连接时

SELECT u.Id,u.FirstName,u.LastName,u.Email,SUM(a.Amount) Amount FROM users u LEFT JOIN amount a  WHERE a.ExpenseDate >= '2013-05-12' GROUP BY u.Id

我有23个用户,但它只显示了14个用户的数据,因为其余9个没有输入数量。
我需要所有的23个用户对金额。

最佳答案

移动ON子句中的条件,

SELECT u.Id,u.FirstName,u.LastName,u.Email,SUM(a.Amount) Amount
FROM   users u LEFT JOIN amount a ON i.ID = a.ID
       AND a.ExpenseDate >= '2013-05-12'
GROUP  BY u.Id

在这种情况下,优化器首先过滤表amount中的记录,然后再将其加入到表user中。

关于mysql - 我有一个用户表和金额表,即使金额为零或零,我也要向所有用户显示金额,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16621387/

10-12 23:24