繁体   English   中英

SELECT 或 JOIN 使用具有相似列的两个表

[英]SELECT or JOIN using two tables with similar columns

简要概述和关系信息

一个导师可以在 1:N 关系中指导多个被指导者,这在两端都是可选的,因此可能有一些经理不指导任何其他经理,也可能有经理没有由另一位经理指导。 导师和学员都由他们各自的编号表示,这也是他们在经理表中的经理编号。

给定模式

Employee 表具有以下列:

  • 员工编号
  • 姓名
  • 家庭地址
  • 电话号码

管理器表包含:

  • 经理号码
  • Employee_Number(用外键链接到 Employee 表)

Mentor 表包含:

  • Mentee_Number(与外键链接到 Manager 表 [Manager_Number])
  • Mentor_Number(也与外键链接到 Manager 表 [Manager_Number])

需要什么以及我尝试了什么

我正在尝试进行 JOIN 以便可以看到以下列:

  • 导师的经理编号
  • 导师姓名
  • 被指导者的经理编号
  • 学员姓名

我有以下 join 语句,它似乎不起作用,我不确定为什么:

SELECT
  man.manager_number,
  man.employee_number AS mentor_employee,
  emp.name AS mentor_name,
  man2.employee_number AS mentee_employee,
  emp2.name AS mentee_name
FROM 
  manager man
INNER JOIN
  employee emp
ON
  emp.employee_number = man.employee_number 
INNER JOIN
  mentor men
ON
  man.manager_number= men.mentor_number
INNER JOIN
  employee emp2
ON
 emp2.employee_number = man2.employee_number 
INNER JOIN
  mentor men
ON
  man.manager_number= men.mentee_number;

任何帮助将不胜感激!

撇开您需要的逻辑不谈,您还有一些问题需要解决:

ON
 emp2.employee_number = man2.employee_number /* <---- no MAN2 alias */
INNER JOIN
  mentor men                                 /* <---- same alias MEN than before */

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM