导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请教一个SQL查询语句,祝大家新年快乐!

huihuishou 2002-12-31 02:34:03
向各位高手请教一个SQL语句:

有四个表,学生表student(★stu_id,class_id)
班级表class(★class_id,class_name)
俱乐部表club(★club_id,club_name)
俱乐部成员表club_stu(★club_id,★stu_id,sequence)

一个学生可以参加多个俱乐部,而且无论在哪个俱乐部里都会有一个编号,用来排列顺序,这个字段就是club_stu中的

sequence。
举几个数据如下:
学生表
stu_id,class_id
9901, 1
9902, 1
9903, 2
9904, 2
9905, 3
9906, 3
9907, 3
9908, 3

俱乐部成员表:
club_id,stu_id,sequence
1, 9901, 1
1, 9908, 2
1, 9905, 3
1, 9902, 4
1, 9903, 5

现在想用SQL语句得到跟俱乐部1有关的不重复的班级,并且这些班级的顺序是根据成员的编号sequence来确定的。
根据上面的例子,最终的结果就是:
class_id:
1,
3,
2

请问这个SQL语句该怎么写?
...全文
27 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huihuishou 2003-01-02
首先感谢各位大力帮助,现在才慢慢体会到SQL语句的强大。
下面想对大家的答复做一下回复:
CrazyFor(蚂蚁):你写的语句忘了排序

CCEO():你的语句没有指出与俱乐部1有关

tj_dns(愉快的登山者):你的语句好象执行的时候不正确,说是order by后面的字段一定要出现在select列表中。

新的一年刚开始,我就学到了新的东西。再次感谢各位!



回复
有四个表,学生表student(★stu_id,class_id)
俱乐部成员表club_stu(★club_id,★stu_id,sequence)

SELECT distinct class_id from student as A, club_stu as B
where A.stu_id = B.stu_id
and B.club_id = 1
order by sequence
回复
hanxian 2002-12-31
学习ING
回复
hjhing 2002-12-31
select class_id
from club_stu c ,student s
where c.stu_id=s.stu_id
group by class_id
order by min(sequence)
回复
dotnba 2002-12-31
先顶一下

请帮忙看看Sqlserver问题:
http://expert.csdn.net/Expert/topic/1316/1316518.xml?temp=.6829492
灌水请进:
http://expert.csdn.net/Expert/topic/1309/1309999.xml?temp=.6054651
回复
happydreamer 2002-12-31
select class_id from student inner join club
on student.stu_id=club.stu_id
where club_id='1'
group by class_id
order by min(sequence)
回复
CCEO 2002-12-31
select class_id
from club_stu cs,student s
where cs.stu_id=s.stu_id
group by class_id
order by min(sequence)
回复
CrazyFor 2002-12-31
select class_id from (select class_id from club_stu a left join Student B on a.stu_id=b.stu_id) AA
group by class_id
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告