简体   繁体   English

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

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

Brief Overviw and Relationship Info简要概述和关系信息

One Mentor may mentor several Mentees in a 1:N relationship which is optional on both ends, therefore there may be managers who don't mentor any other managers and also managers who are not mentored by another manager.一个导师可以在 1:N 关系中指导多个被指导者,这在两端都是可选的,因此可能有一些经理不指导任何其他经理,也可能有经理没有由另一位经理指导。 Both Mentors and Mentees are represented by their respective Number which is also their Manager Number from the Manager table.导师和学员都由他们各自的编号表示,这也是他们在经理表中的经理编号。

Given Schema给定模式

The Employee table has the following columns: Employee 表具有以下列:

  • Employee_Number员工编号
  • Name姓名
  • Home Address家庭地址
  • Telephone Number电话号码

The Manager table contains:管理器表包含:

  • Manager_Number经理号码
  • Employee_Number (linked with foreign key to Employee table) Employee_Number(用外键链接到 Employee 表)

The Mentor table contains: Mentor 表包含:

  • Mentee_Number (linked with foreign key to Manager table[Manager_Number]) Mentee_Number(与外键链接到 Manager 表 [Manager_Number])
  • Mentor_Number (also linked with foreign key to Manager table[Manager_Number]) Mentor_Number(也与外键链接到 Manager 表 [Manager_Number])

What's required and what I tried需要什么以及我尝试了什么

I am trying to do a JOIN so that I can see following columns:我正在尝试进行 JOIN 以便可以看到以下列:

  • Mentor's Manager Number导师的经理编号
  • Mentor's Name导师姓名
  • Mentee's Manager Number被指导者的经理编号
  • Mentee's Name学员姓名

I have the following join statement, which does not seem to work and I am unsure why:我有以下 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;

Any help would be greatly appreciated!任何帮助将不胜感激!

Keeping aside the logic you need, you have some issues to fix:撇开您需要的逻辑不谈,您还有一些问题需要解决:

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