Нужна помощь в присоединении к столам - PullRequest
0 голосов
/ 17 апреля 2010

Я новичок в MySQL, извините, если это глупый вопрос ..

Это мои таблицы.

ученический стол:
SID (основной)
student_name
консультант (внешний ключ к faculty.facultyID)
required_advisor (внешний ключ к faculty.facultyID)

преподавательский стол:
facultyID (первичный ключ)
advisor_name

Я хочу запросить таблицу, которая показывает все в таблице учеников, но я хочу, чтобы советник и required_advisor отображались как имена, а не как идентификационные номера.

так, как это выглядит на веб-странице так:
Имя студента: Джейн Смит
SID: 860123456
Текущий консультант: Джон Смит
Требуемый консультант: Джеймс Смит

не так

Имя ученика: Джейн Смит
SID: 860123456
Текущий советник: 1
Требуемый советник: 2

SELECT student.student_name, SID, student_email, faculty.advisor_name
FROM student
INNER JOIN faculty ON student.advisor = faculty.facultyID;

это подходит близко, но я не знаю, как заставить требуемый_адуктор отображаться как имя.

Ответы [ 2 ]

1 голос
/ 17 апреля 2010

Присоединиться к факультету дважды, используя разные псевдонимы,

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;
0 голосов
/ 17 апреля 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...