仅使用主键和外键获取值
问题描述:
我已经尝试了几个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
的名称?
答
请尝试查询如图所示。您发布的查询的问题是,您并未选择团队领导者的姓名,而只是原来的员工。为了获得团队领导者的姓名,您必须加入员工表的另一个实例(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";
干杯,
答
您需要另一个加盟用于获取结果:
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';
我加左加入了employeee没有teamleader。
我取消了对语句2号和做的伎俩......太感谢你了。 – Mikael1
好吧,我试图删除第二个连接,这是一个错误来自哪里,他们只显示团队领导的名字,也许删除它是一个很大的错误,无论如何,我试过你的查询,但说第6行错误...第二个声明。 – Mikael1
编辑遵循MySQL语法 – TheBrokenSpoke