SELECT 或 JOIN 使用同一列两次
SELECT or JOIN using same column twice
所以我有三个 table:员工、秘书和经理
给定架构
Employee
table 有以下列:
- Employee_Number
- 姓名
- 家庭住址
- 电话号码
Secretary
table 包含:
- Secretary_Number
- Employee_Number(用外键链接到 Employee table)
- Manager_Number(与管理器 table 的外键链接)
Manager
table包含:
- Manager_Number
- Employee_Number(用外键链接到 Employee table)
需要什么以及我尝试了什么
我正在尝试执行 JOIN 以便我可以看到以下列:
- 秘书号码
- 秘书姓名
- 经理编号
- 经理姓名
我有以下连接语句,它显示了所有列,并显示了 Secretary's name 和 number,以及经理编号:
SELECT
SECRETARY.SECRETARY_NUMBER,
SECRETARY.EMPLOYEE_NUMBER AS SECRETARY_EMPLOYEE,
EMPLOYEE.NAME AS SECRETARY_NAME,
SECRETARY.MANAGER_NUMBER,
MANAGER.EMPLOYEE_NUMBER AS MANAGER_EMPLOYEE,
EMPLOYEE.NAME AS MANAGER_NAME
FROM SECRETARY, MANAGER, EMPLOYEE
WHERE SECRETARY.MANAGER_NUMBER = MANAGER.MANAGER_NUMBER
AND SECRETARY.SECRETARY_NUMBER = EMPLOYEE.EMPLOYEE_NUMBER
AND MANAGER.EMPLOYEE_NUMBER = EMPLOYEE.EMPLOYEE_NUMBER;
问题
但是我无法显示经理姓名,或者不重复与秘书姓名相同的信息。
如有任何帮助,我们将不胜感激!
SELECT
s.SECRETARY_NUMBER,
s.EMPLOYEE_NUMBER AS SECRETARY_EMPLOYEE,
e.NAME AS SECRETARY_NAME,
s.MANAGER_NUMBER,
m.EMPLOYEE_NUMBER AS MANAGER_EMPLOYEE,
e2.NAME AS MANAGER_NAME
FROM
SECRETARY s
INNER JOIN
EMPLOYEE e
ON
e.EMPLOYEE_NUMBER = s.EMPLOYEE_NUMBER
INNER JOIN
MANAGER m
ON
m.EMPLOYEE_NUMBER = s.MANAGER_NUMBER
INNER JOIN
EMPLOYEE e2
ON
e2.EMPLOYEE_NUMBER = m.EMPLOYEE_NUMBER;
所以我有三个 table:员工、秘书和经理
给定架构
Employee
table 有以下列:
- Employee_Number
- 姓名
- 家庭住址
- 电话号码
Secretary
table 包含:
- Secretary_Number
- Employee_Number(用外键链接到 Employee table)
- Manager_Number(与管理器 table 的外键链接)
Manager
table包含:
- Manager_Number
- Employee_Number(用外键链接到 Employee table)
需要什么以及我尝试了什么
我正在尝试执行 JOIN 以便我可以看到以下列:
- 秘书号码
- 秘书姓名
- 经理编号
- 经理姓名
我有以下连接语句,它显示了所有列,并显示了 Secretary's name 和 number,以及经理编号:
SELECT
SECRETARY.SECRETARY_NUMBER,
SECRETARY.EMPLOYEE_NUMBER AS SECRETARY_EMPLOYEE,
EMPLOYEE.NAME AS SECRETARY_NAME,
SECRETARY.MANAGER_NUMBER,
MANAGER.EMPLOYEE_NUMBER AS MANAGER_EMPLOYEE,
EMPLOYEE.NAME AS MANAGER_NAME
FROM SECRETARY, MANAGER, EMPLOYEE
WHERE SECRETARY.MANAGER_NUMBER = MANAGER.MANAGER_NUMBER
AND SECRETARY.SECRETARY_NUMBER = EMPLOYEE.EMPLOYEE_NUMBER
AND MANAGER.EMPLOYEE_NUMBER = EMPLOYEE.EMPLOYEE_NUMBER;
问题
但是我无法显示经理姓名,或者不重复与秘书姓名相同的信息。
如有任何帮助,我们将不胜感激!
SELECT
s.SECRETARY_NUMBER,
s.EMPLOYEE_NUMBER AS SECRETARY_EMPLOYEE,
e.NAME AS SECRETARY_NAME,
s.MANAGER_NUMBER,
m.EMPLOYEE_NUMBER AS MANAGER_EMPLOYEE,
e2.NAME AS MANAGER_NAME
FROM
SECRETARY s
INNER JOIN
EMPLOYEE e
ON
e.EMPLOYEE_NUMBER = s.EMPLOYEE_NUMBER
INNER JOIN
MANAGER m
ON
m.EMPLOYEE_NUMBER = s.MANAGER_NUMBER
INNER JOIN
EMPLOYEE e2
ON
e2.EMPLOYEE_NUMBER = m.EMPLOYEE_NUMBER;