[英]Getting a value using only the primary key and foreign key
我已经尝试了几个queries
和joins
,但无法解决此问题。
我有2张桌子
Employee
--------
ID(PK)
Firstname
Lastname
ContactNumber
Position
TeamleaderID(FK) //*which is only applicable if the position isn't a team leader*//
Team Leader
----------
ID(PK)
employeeID(FK)
Employee
表包含2个数据,第一个是。
ID(PK) - 1
Firstname - Mikael
Lastname - Roque
ContactNumber - 0010101
Position - TeamLeader
TeamleaderID(FK) - Null
第二个是
ID(PK) - 2
Firstname - Rinnie
Lastname - Hoshino
ContactNumber - 0010101
Position - Engineer
TeamleaderID(FK) - 1
第三个是teamleader
表
ID(PK) - 1
employeeID(FK) - 1
我已经试过这个查询
SELECT employee.*
FROM employee
JOIN teamleader
ON employee.teamleader_id=teamleader.teamleader_id
Where employee.firstname='Rinnie';
但结果是仅显示了teamleader
ID。 是否可以选择所有employee
数据,包括teamleader
的姓名?
您需要另一个联接才能获得结果:
SELECT employee.*,leader.*
FROM employee
LEFT JOIN teamleader ON employee.teamleader_id=teamleader.teamleader_id
LEFT JOIN employee as leader ON teamleader.employeeID = leader.ID
Where employee.firstname='Rinnie';
我为没有团队领导者的员工添加了左加入。
请尝试如图所示的查询。 您发布的查询的问题在于您没有选择团队负责人的姓名,而只选择了原始员工。 要获得团队负责人的姓名,您还必须加入到employee表的另一个实例(employee_1),并链接到表teamleader中的employeeId字段。
SELECT e.*, m.FirstName as TeamLead
FROM employee e
join teamlead on e.TeamleaderId = teamlead.ID
join employee m on teamlead.employeeID = m.ID
WHERE e.FirstName = "Rinnie";
干杯,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.