我正在练习在 MySQL 上恢复到标准状态,并且在使用 Northlight 练习数据库时遇到了问题。我专门使用这个网站进行练习:http://www.w3schools.com/sql/trysql.asp
我注意到“订单”表中没有出现任何员工 Adam West(员工 ID 10)。我正在尝试获取一个返回以下内容的列表:
FirstName LastName Number of Sales
Nancy Davolio 29
Andrew Fuller 20
Janet Leverling 31
Margaret Peacock 40
Steven Buchanan 11
Michael Suyama 18
Robert King 14
Laura Callahan 27
Anne Dodsworth 6
Adam West 0
但是,每次,底行(Adam West = 0)都不会返回。
我尝试过以下方法:
SELECT Employees.FirstName, Employees.LastName, COUNT(Employees.EmployeeID) as "Number of Sales"
FROM Employees
WHERE Employees.EmployeeID = Orders.EmployeeID
GROUP BY Orders.EmployeeID
我还尝试在 FROM
行和 WHERE
行之间插入 LEFT JOIN Orders
,但无济于事。
最佳答案
使用 LEFT JOIN
时,您需要将该子句添加到 ON
语句中。此外,由于 Orders.EmployeeID
可能不存在,因此您需要 GROUP BYEmployees.EmployeeID
。
试试这个:
SELECT Employees.FirstName, Employees.LastName, COUNT(Orders.EmployeeID) as "Number of Sales"
FROM Employees
LEFT JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID
GROUP BY Employees.EmployeeID
关于mysql - 我如何选择所有给定的员工 ID,即使是那些在另一个表中没有出现的员工 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33351094/