簡體   English   中英

僅使用主鍵和外鍵獲取值

[英]Getting a value using only the primary key and foreign key

我已經嘗試了幾個queriesjoins ,但無法解決此問題。

我有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM