Mysql帮助-左连接

标签 mysql sql database left-join

我通常阅读其他主题,这是我在这里的第一个问题。开始;

我正在尝试构建一个涉及两个表的查询,类(class)表和 studentsLink 表。 StudentsLink 表描述了学生和类(class)之间的链接。表格如下;

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

我基本上是在尝试获得所有可用类(class)的结果集,哪个是特定学生注册的,哪个不是他,所以我可以将其显示为我们可以提供的类(class)学生。

我尝试了此查询的多种变体并进行了一些研究。我并不是要 teh codez,但一点指导会很棒。在尝试同时处理项目的其他部分时,我已经坚持了几天。

非常感谢任何帮助。提前致谢。

最佳答案

SELECT ID, CourseName, CourseInstructor, StudentId, CourseId 
FROM Courses as c 
LEFT JOIN StudentLink as sl ON c.id = sl.CourseId  And StudentId = 103 

关于Mysql帮助-左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5623581/

相关文章:

mysql:联合所有并按相关性排序?

database - 在 SQL Server 中存储图像

android - 将大数据从服务器发送到移动应用程序的最佳实践

php - 如何使用mysql计算满足两个条件的列的所有值?

sql - 链接服务器在 SQL Server 作业上失败

sql - rails 数据库 :seed unknown attribute

database - 使用多供应商市场处理订单

mysql - 从数据库表填充复选框并将其值插入到另一个表

php - 编辑表单中的单选按钮值不是 "checked"

mysql - 如何在 mysql 连接中选择可能不存在的行