多个表的SQL查询(涉及外键)

时间:2012-11-02 00:39:50

标签: mysql sql

我目前在MySQL数据库中有5个表。它们中的一些共享外键并且彼此相互依赖。我正在尝试创建一个能够并排显示所有结果的查询(majorcoursesemester等)。我创建的查询查询它没有显示我想要的结果,因为我没有添加其他表。我不知道如何实现其他表。如何修改mysql-query以按顺序显示所有结果?

查询

select * from course left join major on course.id = majors.id left join majors on courses_major_xref.majors_id = majors.id

2 个答案:

答案 0 :(得分:1)

我认为您的查询中只有一些操作顺序问题,请尝试:

SELECT * from course
LEFT JOIN major_course_xref
ON course.id = major_course_xref.courseID
LEFT JOIN major 
ON major.id = major_course_xref.major_id 
LEFT JOIN course_semester_xref
ON course.id = course_semester_xref.course_id
LEFT JOIN semester
ON course_semester_xref.semester_id = semester.id

答案 1 :(得分:1)

尝试以下

SELECT * FROM course 
INNER JOIN major_courses_xref ON course.id = major_courses_xref.course_id 
INNER join majors ON major_courses_xref.majors_id = majors.id 
INNER JOIN courses_semester_xref ON course.id = courses_semester_xref.course_id 
INNER JOIN semester ON courses_semester_xref.semester_id = semester.id;