2015-11-20 4 views
0

У меня есть три таблицы, как описано ниже, которые мне нужно запросить. Я понимаю простые JOINs, но это немного выше моего уровня.Объединение 3 таблиц в MySQL (3 глубины)

courses имеет две колонки id (PK) и courseTitle (пример 1, идентификатор courseTitle физика)

classes имеет три столбца. id (PK), courseID, startDate (курсID относится к столбцу id в табличных курсах).

evals имеет много столбцов. id (PK), classID, instructorID, .....

Как конечный результат, я хочу, чтобы мой запрос SELECT, чтобы в конечном итоге с: все из evals колонн, а также course.courseTitle (на основе classes.courseID) и classes.startDate

Я уверен, что я может сделать это в два этапа, но я хочу сделать это «правильным» способом.

+1

Пожалуйста, добавьте свой запрос, чтобы показать ваши усилия –

+0

где находится ваша база данных .. ?? имя таблицы со столбцами (-ами) ... ?? Нам нужна информация, чтобы решить ваши проблемы ... :) –

ответ

0

Та же логика в объединении двух таблиц применяется также при присоединении три- только присоединиться к ним в два раза с первичными колоннах Ид

select evals.*, courses.courseTitle, classes.startDate from 
evals inner join classes on evals.classId = classes.id 
Inner join courses on classes.courseId = courses.id 
0

Вы должны JOIN все три таблицы вместе, используя свои отношения (первичный ключ/иностранных ключа).

Отображение одного или нескольких колонок может быть достигнуто путем указания TABLENAME.FIELDNAME. Показаны все столбцы в одной таблице необходимо указать TABLENAME.*

SELECT 
    course.courseTitle, 
    classes.startDate, 
    evals.* 
FROM 
    course 
JOIN 
    classes on course.id = classes.courseID 
JOIN 
    evals on evals.classID = classes.id 
Смежные вопросы