【发布时间】:2020-12-24 09:04:59
【问题描述】:
Link to relevant schema in question
对于 SQL。进行查询以显示 所有 已帮助客户的员工并显示他们的发票数量。我的问题是我可以显示员工人数和 ID,但我无法从查询中显示所有员工。
输出应该类似于
ID - Last - First - COUNT(invoices)
如果为 NULL,名称也应该显示出来。
我试过了:
SELECT e.EmployeeId,e.LastName, e.FirstName, COUNT() as NUM_INVOICE
FROM employees AS e
LEFT OUTER JOIN customers as c ON e.EmployeeId=c.SupportRepId
INNER JOIN invoices as i ON c.CustomerId =i.CustomerId
GROUP BY e.EmployeeId
ORDER BY NUM_INVOICE DESC
它给了:Output from my best attempt
问题是,这没有显示没有通过客户表和发票表连接的任何发票的剩余 id。它缺少雇员表中的 5 个名称,它们应该显示 NULL 作为计数。我认为左内连接可以解决这个问题并“带来”员工表中的名称,但它们被删除了。
【问题讨论】:
-
你的最后一个 jon 必须是
LEFT JOIN。 -
请参考语言文档/定义,解释您期望的原因。 minimal reproducible example 在您的帖子中提出需要询问的内容。对于可以作为文本给出的内容,请使用文本,而不是图像/链接。
标签: mysql sql count left-join sql-order-by