初学者......
如果我有一个有递归的表,需要帮助才能显示以下内容。
大学生表,其中一些是教师和学生。所以,有些学生可以教其他学生,因为他们是老师。
|SID| FName | LName | Phone | Teacher |
----------------------------------------------------------
|1 | John | Smtih | 123 | Null |
|2 | Susan | Johnson| 321 | 1 |
|3 | Jane | Doe | 456 | 1 |
|4 | Mike | Jones | 654 | Null |
|5 | Doug | Houston| 789 | 4 |
教师字段与Student_ID
字段相关(因此该表的递归性质)。
我需要拿出SQL命令显示下表(FName,LName和老师的名字):
| FName | LName | Teacher |
-----------------------------------
| John | Smtih | Null |
| Susan | Johnson| John Smith |
| Jane | Doe | John Smith |
| Mike | Jones | Null |
| Doug | Houston| Mike Jones |
如果我运行以下内容:
SELECT FName,LName,Teacher
FROM TableA;
我得到了我需要的大部分内容,但教师由Student_ID
代表。如何在Student_ID
出现的位置显示学生姓名?
答案 0 :(得分:0)
您可以自我加入同一个表,将其作为外部联接以允许空教师值,并连接教师的名字/姓氏。像这样:
SELECT a.FName, a.LName, b.FName || ' ' || b.LName
FROM TableA a
LEFT JOIN TableA b ON (a.Teacher = b.SID)