首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用主键和外键获取值

仅使用主键和外键获取值
EN

Stack Overflow用户
提问于 2015-08-15 19:16:44
回答 2查看 43关注 0票数 0

我已经尝试过几次queriesjoins,但我解决不了这个问题。

我有两张桌子

代码语言:javascript
复制
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表由两个数据组成,第一个是。

代码语言:javascript
复制
ID(PK) - 1                                                                         
Firstname - Mikael                                                                                                                               
Lastname - Roque                                                                                                                     
ContactNumber - 0010101                                                                                                             
Position - TeamLeader                                                                                                                                                                                              
TeamleaderID(FK) - Null 

第二个是

代码语言:javascript
复制
ID(PK) - 2                                                                         
Firstname - Rinnie                                                                         
Lastname - Hoshino                                                                         
ContactNumber - 0010101                                                                         
Position - Engineer                                                                         
TeamleaderID(FK) - 1

第三张是teamleader

代码语言:javascript
复制
ID(PK) - 1                                                                         
employeeID(FK) - 1   

我试过这个查询

代码语言:javascript
复制
SELECT employee.*                                                                         
FROM employee                                                                         
JOIN teamleader                                                                         
ON employee.teamleader_id=teamleader.teamleader_id                                                                         
Where employee.firstname='Rinnie';  

但结果是只显示了teamleader id。是否可以选择所有的employee数据,包括teamleader的名称

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-15 20:47:40

请按如下所示尝试查询。您发布的查询的问题是,您不是在选择组长的姓名,而是选择原来的员工。要获得团队负责人的名称,您必须加入到employee表(employee_1)的另一个实例,并链接到表teamleader中的employeeId字段。

代码语言:javascript
复制
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";

干杯,

票数 0
EN

Stack Overflow用户

发布于 2015-08-15 19:55:06

您需要另一个连接才能获得结果:

代码语言:javascript
复制
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';

我为没有团队领导的员工添加了“左加入”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32028395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档