我有一个用户表和金额表,我想显示所有用户的金额,即使金额为零或零

时间:2013-05-18 06:25:06

标签: mysql sql join

我正在使用mysql。 当我像这样使用JOINS时

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个用户的金额。

1 个答案:

答案 0 :(得分:1)

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上。