我在尝试选择同一行中的学生姓名和教授姓名方面遇到了问题。
表用户
ID --- NAME
表研究
STUDENT_ID (FK) --- PROFESSOR_ID (FK)
referencing USERS
就像我上面说的那样,我想在同一行中选择两个名字。 有什么建议吗?
另外,在RESEARCHES表中有一个名为AUX_PROFESSOR的可选字段,如果设置了,我还需要选择他的名字。我怎么能这样做?
答案 0 :(得分:1)
您需要多个联接。以下将在一行中获得两个名称:
select s.name as student_name, p.name as professor_name
from users s join
researches r
on s.id = r.student_id
users p
on p.id = r.professor_id;
如果你有一两位教授,你可以这样做:
select s.name as student_name,
max(p.name) as professor1_name,
(case when min(p.name) <> max(p.name) then min(p.name) end) as professor2_name
researches r
on s.id = r.student_id
users p
on p.id = r.professor_id
group by s.name;
你没有说如何区分数据中的两种类型的教授,所以这只列出了两个名字。
答案 1 :(得分:0)
您只需要对结果集中的列进行别名。
SELECT s.Name AS StudentName,
p.Name AS ProfessorName
[...]