有三张表
students
sid sname age sex
100 am 23 b
111 bm 23 b
122 pom 22 g
133 mk 20 b
course
cid cname
900 java
911 c
922 c++
933 d
944 dota
955 war3sc
sid cid cj
100 900 89
100 911 80
111 955 90
111 933 77
111 944 88
111 911 90
111 900 99
122 933 100
通过这张表差出选修课程是5门的学生的id和name
这怎么做啊 高手教教我啊
students
sid sname age sex
100 am 23 b
111 bm 23 b
122 pom 22 g
133 mk 20 b
course
cid cname
900 java
911 c
922 c++
933 d
944 dota
955 war3sc
sid cid cj
100 900 89
100 911 80
111 955 90
111 933 77
111 944 88
111 911 90
111 900 99
122 933 100
通过这张表差出选修课程是5门的学生的id和name
这怎么做啊 高手教教我啊
from students inner join(
select sid,count(cid) t_cid from sc
group by sid
) A on students.sid = A.sid and A.t_cid = 5我也是刚学习 sql ,你看一下,这样是你要的意思吗
select sid,sname from students t,
(select sid,count(distinct cid) from sc group by sid having count(distinct cid)=5) t1 where t.sid=t1.sid
select sid, sname
from students s, (select sid, count(cid) cu group by sid from sc) t
where s.sid = t.sid
and t.cu = 5
from students s, (select sid, count(cid) cu from sc group by sid) t
where s.sid = t.sid
and t.cu = 5
select sid,sname from students where sid in(select sid from sc group by sid having count(*)=5)
你这个现在只可能有复合主键了