所以我需要制作一个表格,列出每个员工的经理。我知道我需要将经理 ID 与员工 ID 相关联,但我不知道如何去做
create table employee
(EmpID int,
name varchar (50),
title varchar (50),
managerID int,
salary int
);
执行命令时
select * from employee;
应该给
EmpID name title managerID
----------------------------------------------
'101', 'Robert Jones', 'Sales Person', '102'
'102', 'Liz Farnandezs', 'Sales Manager','106'
'103', 'Mathew Richards','Sales Person', '102'
'104', 'Ethan Lubatkin', 'Sales Person', '105'
'105', 'Stuart Little', 'Store Manager', NULL
'106','Samantha Porter', 'Manager', NULL
我对 SQL 还是个新手,所以任何能帮助我解决这个问题的东西都会很棒。
我需要一个看起来像这样的结果
EmpID name manager managerID
----------------------------------------------
'101', 'Robert Jones', 'Liz Farnandezs', '102'
'102', 'Liz Farnandezs', 'Samantha Porter','106'
'103', 'Mathew Richards','Liz Farnandezs', '102'
'104', 'Ethan Lubatkin', 'Stuart Little', '105'
'105', 'Stuart Little', NULL, NULL
'106','Samantha Porter', NULL, NULL
最佳答案
你不需要额外的表格,你在这张表格中有所有需要的信息。
您只需要使用 join(同一张表的两个实例,一个用于员工,一个用于经理)以获取经理的详细信息:
SELECT emps.empID, emps.name, managers.name as manager,
managers.empID as managerID
FROM employee as emps LEFT JOIN employee as managers
ON emps.managerID = managers.empID
关于mysql - SQL:创建一个新表,告诉用户每个员工的经理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33836236/