我的数据库中有这些表
用户,课程,学期,SelectedCourses
用户:ID,用户名,密码,EnterYear
课程: ID,姓名
学期: ID,代码
SelectedCourses: ID,SemesterID(FK到Semesters.ID),UserID(FK到Users.ID),CourseID(FK到Courses.ID)
现在,我有 2或n CourseID,我希望让用户选择此课程一起。
例如:
这是我的SelectedCourses
表:
结果必须是:
我想在 SelectedCourses 列表中找到具有CourseID(1)和 CourseID(2)的用户。
只有 UserID = 1 才有这两门课程!
答案 0 :(得分:0)
select
userId,count(distinct courseId)
from
selectedCourses
where
courseId in (1,2)
group by userId
having count(distinct courseId) > 1
答案 1 :(得分:0)
SELECT U.UserID
FROM Users U
WHERE NOT EXISTS ( SELECT C.CID
FROM Course C
WHERE C.CId in (1,2) AND
NOT EXISTS
(SELECT S.CID
FROM SelectedCourses S
WHERE S.CID = C.CID AND
S. UserID = U.UserID)
);
对于每个用户,我们检查此用户没有采取任何课程。
只要课程数在数据类型范围内,就可以正常工作。