在MySql中连接两个表后使用Max Count

时间:2015-05-09 07:43:34

标签: mysql subquery

我只是MySql的初学者,我正在尝试显示工作人员ID,全名和发给特定员工(工作人员)的最大分配数。两个表worker和赋值通过Wrk_ID相关联。

我的代码无效。

SELECT w.Wrk_ID, 
CONCAT_WS(" ", Wrk_FirstName, Wrk_Initial, Wrk_LastName) AS FullName,
COUNT(a.Wrk_ID) AS count
FROM worker w LEFT JOIN assignment a
ON w.Wrk_ID = a.Wrk_ID
GROUP BY w.Wrk_ID
HAVING count = ALL(SELECT MAX(a.Wrk_ID) FROM assignment GROUP BY Wrk_ID);

真的需要帮助!...谢谢

1 个答案:

答案 0 :(得分:1)

试试这个

SELECT distinct w.Wrk_ID, 
CONCAT_WS(" ", Wrk_FirstName, Wrk_Initial, Wrk_LastName) AS FullName,
COUNT(a.Wrk_ID) AS count
FROM worker w LEFT JOIN assignment a
ON w.Wrk_ID = a.Wrk_ID
GROUP BY w.Wrk_ID
HAVING count >= ALL(SELECT count(Wrk_ID) FROM assignment GROUP BY Wrk_ID);

SQL小提琴 - http://sqlfiddle.com/#!9/b6e2b/10