我通常阅读其他线程,这是我的第一个问题。开始;Mysql帮助 - 左加入
我想建立一个涉及两个表,课程表和studentsLink表的查询。 StudentsLink表格描述了学生和课程之间的联系。表格如下;
Course
courseID(bigint) - PK
courseName (varchar)
courseInstructor (varchar)
StudentsLink
courseID(bigint) - PK
StudentID(bigint) - PK
Below is some sample data;
course table
ID | courseName| courseInstructor
----------------------------------
1 | Algebra 1 | Mike
2 | English 2 | James
3 | English 3 | John
4 | Algebra 2 | Mike
5 | History 1 | Tony
Studentlink table
studentID | courseID
----------------------
100 | 2
101 | 3
102 | 3
102 | 4
103 | 4
100 | 1
103 | 3
103 | 2
,如果我一直在寻找的学生数量期望的结果是下面给出的103
ID | courseName| courseInstructor |StudentID | CourseID
---------------------------------------------------------
1 | Algebra 1 | Mike | NULL | NULL
2 | English 2 | James | 103 | 2
3 | English 3 | John | 103 | 3
4 | Algebra 2 | Mike | 103 | 4
5 | History 1 | Tony | NULL | NULL
,我至今是下面的查询;
SELECT *
FROM course
LEFT JOIN studentLink
ON course.courseID = studentLink.courseID
WHERE studentLink.studentID = 103 OR (studentLink .studentID IS NULL AND studentLink.courseID IS NULL)
ORDER BY studentLink.courseID DESC
基本上,我试图让设置了所有可用的课程,哪一个是特定的学生在注册的结果,哪一个是他不是这样我就可以显示它作为一门课程,其我们可以提供给学生。
我已经尝试了这个查询的许多变化,并做了一些研究。我不完全要求编码,但一点指导会很棒。在尝试同时处理项目的其他部分时,我一直坚持这几天。
任何帮助,非常感谢。提前致谢。