我在查询时遇到问题,该查询显示每个员工的员工编号、名字、姓氏和订单数量。请确保“订单数”列名称应为“OrderCount”。按OrderCount排序,然后按员工ID排序。允许为空。
包含列的员工数据:Emp_IDF_NameL_Name
包含列的订单数据:O_IDEmp_IDOrderNumber
我的问题是:

Select order_data.Emp_ID, F_Name, L_Name, COUNT(employee_data.Emp_ID) as OrderCount
FROM order_data
LEFT JOIN employee_data
ON employee_data.Emp_ID = order_data.Emp_ID
GROUP BY order_data.Emp_ID
ORDER BY OrderCount

这是我的桌子:
员工数据
订单数据
输出应该是:
但它给了我一个错误的输入。

最佳答案

试试这个:

SELECT od.Emp_ID, ed.F_Name, ed.L_Name, COUNT(DISTINCT od.O_ID) AS OrderCount
FROM order_data od
LEFT JOIN employee_data ed ON ed.Emp_ID = od.Emp_ID
GROUP BY od.Emp_ID
ORDER BY OrderCount

关于mysql - COUNT()和左联接不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27983898/

10-10 06:38