] 2
我基本上需要为每个部门聘请不同的经理,并将爱丽丝列为所有老板。请帮忙。
这就是我所拥有的:
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
最佳答案
最好的方法是使用分层查询,这在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)