INNER JOIN'字段列表'中的未知列

时间:2011-04-15 05:27:59

标签: mysql inner-join

我正在尝试显示我在这些列中的信息,它一直告诉我教授表中的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 个答案:

答案 0 :(得分:2)

错误是因为您未在 加入中包含部分。你跟教授有同样的想法。

就个人而言,在这种情况下,我更喜欢暗示内部联接的可读性。 DBA可能不同意,但作为程序员,我发现这更容易弄清楚发生了什么。

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 :(得分:1)

您没有加入FROM子句中的professors表,只有professor_course

答案 2 :(得分:0)

重新检查数据库,你可能拼错了那里的列。

答案 3 :(得分:0)

你的查询完全错误..

从不同的表中选择(SELECT子句)并且FROMJOIN子句上没有这样的表

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

in

 INNER JOIN course_section cs ON sections.id = cs.section_id
在写上述条件之前,你必须包括表sections

同样的事情

    INNER JOIN professor_course pc ON professors.id = pc.professor_id 
在写上述条件之前,你必须包括表professors

我认为你的查询应该是

注意:最好将 alias 用于表格

ALL D BEST