[英]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.