同时选修几门课的学生(200分)

  • 主题发起人 主题发起人 zbw
  • 开始时间 开始时间
Z

zbw

Unregistered / Unconfirmed
GUEST, unregistred user!
典型的学生选课,SC表,S_NO,C_NO分别是学生号,和课程号码,选出既选修A课程,
又选修B课程,又选修C课程的S_NO,如何写比较高效的SQL语句?更复杂点情况,又有一表SF,
学生爱好表,S_NO,F_NO分别是学生号和号码编号,写出既选修A,B,C课程,同时有FA,FB,FC
爱好的S_NO.
 
1...select s_no from sc where (c_no="A")and
(s_no in (select s_no from sc where c_no="B"))

2...select s_no from sc where c_no="A"
UNION
select s_no from sc where c_no="B"
UNION
select s_no from sc where c_no="B"
UNION
select s_no from sf where f_no="FA"
UNION
select s_no from sf where f_no="FB"
UNION
select s_no from sf where f_no="FC"

第一个比较简单用in就可以了.第二种性况比较复杂,
可以用union来对简单查询”并”操作.而且,用并操作对于条件的扩充也方便.
 
UNION是并操作,不是交集啊!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部