注册 登录
编程论坛 SQL Server论坛

SQL问题

心动音符 发布于 2006-12-16 11:59, 801 次点击

我创建了这么样的一个表:
create table S (
SNO varchar(5),
SNAME varchar(20),
AGE varchar(3),
SEX varchar(2),
SDEPT varchar(10)
);

create table SC (
SNO varchar(5),
CNO varchar(5),
GRADE varchar(10),
);

create table C (
CNO varchar(5),
CNAME varchar(20),
CDEPT varchar(10),
TNAME varchar(20)
);

insert into S(SNO,SNAME,AGE,SEX,SDEPT) values('01','佐助','15','男','学生部');
insert into S(SNO,SNAME,AGE,SEX,SDEPT) values('02','鸣人','15','男','学生部');
insert into S(SNO,SNAME,AGE,SEX,SDEPT) values('04','小樱','13','女','学生部');
insert into S(SNO,SNAME,AGE,SEX,SDEPT) values('03','小李','15','男','学生部');

insert into SC(SNO,CNO,GRADE) values('01','002','一班');
insert into SC(SNO,CNO,GRADE) values('04','002','一班');
insert into SC(SNO,CNO,GRADE) values('03','001','二班');
insert into SC(SNO,CNO,GRADE) values('01','003','二班');


insert into C(CNO,CNAME,CDEPT,TNAME) values('001','火遁术','火影部','纲手');
insert into C(CNO,CNAME,CDEPT,TNAME) values('002','写轮眼','火影部','卡卡西');
insert into C(CNO,CNAME,CDEPT,TNAME) values('003','体术','火影部','李');

----------------------------------------------------------------------------------------------------------------
要求:
1 检索至少选修两门的课程的学生姓名,没有就为null.
2 检索全部学生都选修的课程的课程号和课程名,没有就为null.

4 回复
#2
李彬2006-12-16 15:32

首先肯定是要用连接,我自己也试了好几次没有弄出来,不过我可以建议楼主把你的表从新设计下,例如学号之类的楼主为什么会选择用字符型呢?还有就是表与表之间的关联有没有建立啊!帮下顶下,等等高手帮你解决!

#3
yhxyh2006-12-17 17:22
select sname from s where sno in (select sno from sc where cno in(select cno from c))

#4
心动音符2006-12-17 19:09
关联怎么建 请赐教
#5
bygg2006-12-18 10:18
表与表之间都应该有关联才行.
1