mysql - 我如何选择所有给定的员工 ID,即使是那些在另一个表中没有出现的员工 ID?

标签 mysql

我正在练习在 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/

相关文章:

php - 从 Laravel vagrant box 连接到 MySQL

mysql - node.js 中 mysql 查询中的 Javascript 变量

mysql - 在rails中按月分隔日期

mysql - 无法对单个表使用子查询sql

php - Laravel 查询生成器 - 查询不工作但在 SQL 控制台中工作

mysql - 在哪里可以找到 Worklight 服务器的 my.ini

mysql - 比较 mySQL 中的多个列

php - 如何使子列的名称按字母顺序排列?

mysql - 在数据库中找不到空值

php - 保存 Flash 游戏分数 PHP/MySQL