我是一个MySQL新手,很抱歉,如果这是一个愚蠢的问题..
这些是我的表格。
学生表:
SID(主要)
student_name
顾问(faculty.facultyID的外键)
requested_advisor(faculty.facultyID的外键)
教师表:
facultyID(主键)
advisor_name
我想查询一个显示学生表中所有内容的表,但我希望顾问和requested_advisor显示为名称,而不是ID号。
就像它在网页上显示的那样:
学生姓名:Jane Smith
SID:860123456
现任顾问:John Smith
请求顾问:James Smith
不喜欢这个
学生姓名:Jane Smith
SID:860123456
现任顾问:1
请求顾问:2
SELECT student.student_name, SID, student_email, faculty.advisor_name
FROM student
INNER JOIN faculty ON student.advisor = faculty.facultyID;
这很接近,但我不知道如何让requested_advisor显示为名称。
答案 0 :(得分:1)
使用不同的别名加入教师两次,
SELECT
student.student_name,
SID,
student_email,
fac1.advisor_name AS 'advisor',
fac2.advisor_name AS 'requested advisor'
FROM student
INNER JOIN faculty fac1 ON student.advisor = fac1.facultyID
INNER JOIN faculty fac2 ON student.requested_advisor = fac2.facultyID;
答案 1 :(得分:0)
SELECT s.student_name, s.SID, f.advisor_name, f2.advisor_name
FROM student s
JOIN faculty f ON s.advisor = f.facultyID
JOIN faculty f2 ON s.requested_advisor = f2.facultyID
应输出
Jane Smith | 860123456 | John Smith | James Smith