有四张表,学生表,课程表,班级表,学生表中有个班级外键,还有一个学生和课程的中间表,这个中间表有学生ID,课程ID,成绩。
查询出班级是1,并且每门课程成绩都>=60的学生人数
三和四都数不清,基本也就告别程序员了。自行车,要啥自行车!
create table xuesheng(
st_id VARCHAR(50),
name VARCHAR(50),
c_id VARCHAR(50)
)
insert into xuesheng values('s101','张1','C1')
insert into xuesheng values('s102','张2','C1')
insert into xuesheng values('s103','张3','C2')
insert into xuesheng values('s104','张4','C2')
insert into xuesheng values('s105','张5','C2')
create table class(
c_id VARCHAR(50),
c_name VARCHAR(50)
)
insert into class values('C1','一年一班')
insert into class values('C2','一年二班')
create table kecheng(
kc_id VARCHAR(50),
kc_name VARCHAR(50)
)
insert into kecheng values('K01','语文')
insert into kecheng values('K02','数学')
insert into kecheng values('K03','英语')
create table chengji(
st_id varchar(50),
kc_id VARCHAR(50),
kc_score VARCHAR(50),
)
insert into chengji values('s101','K01',100)
insert into chengji values('s101','K02',50)
insert into chengji values('s101','K03',70)
insert into chengji values('s102','K01',100)
insert into chengji values('s102','K02',70)
insert into chengji values('s102','K03',70)
insert into chengji values('s103','K01',100)
insert into chengji values('s103','K02',70)
insert into chengji values('s103','K03',70)
insert into chengji values('s104','K01',50)
insert into chengji values('s104','K02',50)
insert into chengji values('s104','K03',70)
select * from
(select DISTINCT(st_id) from chengji where st_id not in (select DISTINCT(st_id) from chengji where kc_score <60))
o1,xuesheng o2,class o3 where o1.st_id=o2.st_id and o2.c_id=o3.c_id and o3.c_name='一年一班'
看你想表达的应该这个意思吧 希望对你有帮助
楼主都说了还有一个中间表,看描述这不是临时表
三和四还是分得清的
继续