课程与课件是一对多的关系,用户与课件是多对多的关系。那我现在要找某一个课程下的所有用户sql语句怎么去写??或者直接写个存储过程。。。
COURSE_ID 课程id
VIDEO_ID 课件id
USER_ID 用户id
自己解决
SELECT *
FROM T_USER_OUTER
WHERE T_USER_OUTER.USER_ID IN (
SELECT T_USER_LEARNING_RECORD.USER_ID
FROM T_USER_LEARNING_RECORD
LEFT JOIN T_VIDEO ON T_USER_LEARNING_RECORD.VIDEO_ID = T_VIDEO.VIDEO_ID
WHERE T_VIDEO.COURSE_ID IN ( SELECT T_COURSE.COURSE_ID
FROM T_COURSE
WHERE T_COURSE.COURSE_ID = 2 ) )
这个。。。如果仅仅是要所有用户,也太简单了,我猜想你是想做统计,那个还有点点难度。
select USER_ID from table where COURSE_ID =@COURSE_ID
我总共有四张表
T_USER:用户基本信息表
T_COURSE:课程表的基本信息
T_VIDEO:课件表,引用外键COURSE_ID
T_USER_LEARNING_RECORD:用户课件关联表,两个外键(USER_ID,VIDEO_ID)
现在要找某个课程下的所有用户。。。。
SELECT * FROM T_T_USER a RIGHT JOIN T_USER_LEARNING_RECORD b ON a.USER_ID =b.USER_ID LEFT JOIN T_VIDEO c ON b.VIDEO_ID=c.VIDEO_ID LEFT JOIN T_COURSE d ON c.COURSE_ID=d.COURSE