INNER JOIN Неизвестный столбец в «списке полей» - PullRequest
0 голосов
/ 15 апреля 2011

Я пытаюсь отобразить информацию, имеющуюся в этих столбцах, и она постоянно говорит мне, что столбец first_name в моей таблице профессоров неизвестен. Кто-нибудь знает почему? Пожалуйста, помогите мне, я все перепробовал. Спасибо.

Вот запрос:

SELECT courses.name, sections.section_name, professors.first_name, professors.last_name, classrooms.room
FROM courses
INNER JOIN course_section ON sections.id = course_section.section_id
INNER JOIN professor_course ON professors.id = professor_course.professor_id
WHERE courses.id = 1;

Ответы [ 4 ]

2 голосов
/ 15 апреля 2011

Ошибка в том, что вы не включили разделы в из или объединения . У вас то же самое происходит с профессорами .

Лично я предпочитаю удобочитаемость подразумеваемых внутренних объединений в этой ситуации. Администратор базы данных может не согласиться, но мне как программисту проще понять, что происходит.

SELECT courses.name, sections.section_name, professors.first_name, professors.last_name, classrooms.room 
FROM courses, course_section, sections, professors, professor_course, classrooms
WHERE sections.id = course_section.section_id
AND professors.id = professor_course.professor_id 
AND -- classrooms???
AND courses.id = 1; 

Не зная структуру вашей БД, вы, вероятно, сможете получить то, что ищете, с меньшим количеством объединений таблиц.

1 голос
/ 15 апреля 2011

Вы не присоединяетесь к таблице professors в предложении FROM, у вас есть только professor_course.

0 голосов
/ 15 апреля 2011

у вас совершенно неверный запрос ..

, так как вы выбираете из разных таблиц (предложение SELECT), и нет такой таблицы в предложении FROM или JOIN

the tables you need : courses, sections, professors,classrooms

в

 INNER JOIN course_section cs ON sections.id = cs.section_id

вы должны включить таблицу sections перед записью вышеуказанного условия

то же самое для

    INNER JOIN professor_course pc ON professors.id = pc.professor_id 

вы должны включить таблицу professors перед записьюВышеуказанное условие

Я думаю, ваш запрос должен быть

Примечание : лучше использовать псевдоним для таблиц

ALL D BEST

0 голосов
/ 15 апреля 2011

Перепроверьте базу данных, вы, вероятно, ошиблись столбцом там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...