需要帮助加入表格

时间:2010-04-16 23:18:05

标签: mysql inner-join

我是一个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显示为名称。

2 个答案:

答案 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