【发布时间】:2021-03-07 12:18:19
【问题描述】:
我需要一个查询来使用下表列出参加所有可用课程的学生。
declare @Course table (CourseID nvarchar(4))
declare @CourseStudent table
(
CourseID nvarchar(4),
Student nvarchar(50)
)
insert into @Course values ('SOS1')
insert into @Course values ('MAT3')
insert into @Course values ('FEN2')
insert into @CourseStudent values ('MAT3', 'Mehmet')
insert into @CourseStudent values ('SOS1', 'Ahmet')
insert into @CourseStudent values ('MAT3', 'Ahmet')
insert into @CourseStudent values ('FEN2', 'Ahmet')
insert into @CourseStudent values ('SOS1', 'Ali')
insert into @CourseStudent values ('FEN2', 'Ayse')
select * from @Course
select * from @CourseStudent
【问题讨论】:
-
到目前为止你得到了什么?是否有学生参加了所有这些课程以及其他课程?
-
有了正确的主键,您需要做的就是计算 CourseStudent 中的行数。您是否有一个或是否有可能一个学生可能会多次“参加”同一门课程?
-
不,不可能多次学习同一门课程。
-
我想在课程表中列出参加过所有课程的学生。
-
有关使用
EXISTS的解决方案,请参阅:stackoverflow.com/questions/53342896/…。
标签: sql-server exists