[英]Get data from two tables in SQL Server, on where condition of one column
[英]SQL Server : get all data from one table but condition on 2nd tables column
我有 3 张表Student
、 Classes
和StudentClasses
。
学生表:
班级表:
StudentClasses表:
我正在尝试的是
select
c.ClassID, sc.StudentID, Title,
ClassFrom as ClassDate, ClassTo as ClassTime,
Duration, Type as SessionType, sc.Status as StatusJoin
from
Classes c
left join
StudentClasses sc on sc.ClassID = c.ClassID
where
sc.StudentID = '66919287-d63d-4b30-931f-30532b68c2f1' or
sc.StudentID IS NULL
这将返回:
我认为这是正确的,但是当我将其更改为:
where sc.StudentID = '5a22f025-ae64-49b8-9782-32bc2f1ccef6'
这返回:
这应该返回所有 4 个具有学生 ID 和加入日期 null 的班级
这是问题:我希望这里是所有课程,而不是一些学生加入或不加入,那么应该有 Studentid 和 JoiningDate 否则这些列可以是 null
在 ON 子句中使用您的条件而不是 Where
select c.ClassID,sc.StudentID,Title,ClassFrom as ClassDate,ClassTo as
ClassTime,Duration,Type as SessionType,sc.Status as StatusJoin
from Classes c
left join StudentClasses sc on sc.ClassID = c.ClassID
and (sc.StudentID = '66919287-d63d-4b30-931f-30532b68c2f1' or
sc.StudentID IS NULL)
select c.ClassID,sc.StudentID,Title,ClassFrom as ClassDate,ClassTo as ClassTime,Duration,Type as SessionType,sc.Status as StatusJoin from Classes c left join StudentClasses sc on sc.ClassID = c.ClassID
也会有帮助!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.