2017-06-18 38 views
1

這是te問題,
我有一個名爲Users的表的數據庫有3列UserID Mentor和Name,我想顯示用戶和他們的導師。如果我不喜歡這樣寫道:MySQL導師學生表

SELECT UserID, mentorID, Name 
FROM Users; 

我會得到這樣的:

| UserID | Mentor | Name 
| 1  | NULL  | Walter 
| 2  | 1  | Jesse 
| 3  | 1  | Todd 

但我想它是這樣的:

| UserID | Mentor | Name 
| 1  | NULL | Walter 
| 2  | Walter | Jesse 
| 3  | Walter | Todd 

感謝您的幫助,
有一個美好的一天:)

PS
真正的數據庫有點複雜,但我在這裏簡化它。

回答

0

你可以使用一個自連接(使用相同的表的連接)

select a.userID, a.Name as user_name , a.mentorID, b.Name as mentor_name 
from user a 
left join user b on a.mentorID = b.userID 
+0

謝謝你這麼多,你剛纔救了我的學校項目<3 –

+0

@merlijnmerlinberg建議你多學習徹底SQL和關係模型..不難..認爲總是集理論 – scaisEdge

0

爲了得到你需要使用自聯接(自聯接是聯接在一個表中加入了與自身數據) -

SELECT u.UserID, m.Name AS mentor, u.Name FROM user as u LEFT JOIN user AS m ON u.MentorID = m.UserID 
+0

歡迎的條款到StackOverflow並感謝您的幫助。考慮在代碼和散文中使用幾個換行符和一些空格來更加可讀地格式化您的答案。 – Yunnosch