如何获得非重复的员工/经理表

时间:2016-11-01 10:33:30

标签: mysql sql

department table[![employee table] 2

enter image description here

我基本上需要为每个部门获得不同的经理,并将Alice列为他们所有的老板。请帮忙。 这就是我所拥有的:

SELECT distinct WRK.EMP_NUMBER, WRK.EMP_FNAME as WORKER_NAME, 
BOSS.EMP_FNAME AS BOSS_NAME, BOSS.DEPT_NAME
FROM EMPLOYEE AS WRK, EMPLOYEE AS BOSS, DEPARTMENT 
WHERE WRK.BOSS_NUMBER = BOSS.EMP_NUMBER

1 个答案:

答案 0 :(得分:1)

最好的方法是使用MySQL中不支持的分层查询,请参阅http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/了解如何实现它以及使用它可以做的很酷的事情。

另一方面,

如果您只需要管理员名称,无论您可以使用IN还是自联接。

查询应为:

SELECT emp_name, department 
FROM employee 
WHERE emp_number IN (
      SELECT DISTINCT boss_number 
      FROM employee 
      WHERE boss_number IS NOT NULL)