我正在尝试显示我在这些列中的信息,它一直告诉我教授表中的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;
答案 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
子句)并且FROM
或JOIN
子句上没有这样的表
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 用于表格