我有个一个同学的课程设计,做的是个选课系统。
其中有个课程信息表course,结构如下:ID PreID Name
1 初级课程
2 1 中低级课程
3 2 中级课程
4 3 中高级课程
5 4 高级课程 ID表示课程ID
PreID表示选修这门课之前要选的课程,即前导课程,用前导课程的ID表示
Name表示课程名称初级课程不需要前导课程。我想用一条SELECT语句把这个表中的三个列的数据选出来,中间PreID列我要用对应
的Name来表示,而不是ID。
小弟苦思冥想,好像没发实现,不知各位看法如何?
其中有个课程信息表course,结构如下:ID PreID Name
1 初级课程
2 1 中低级课程
3 2 中级课程
4 3 中高级课程
5 4 高级课程 ID表示课程ID
PreID表示选修这门课之前要选的课程,即前导课程,用前导课程的ID表示
Name表示课程名称初级课程不需要前导课程。我想用一条SELECT语句把这个表中的三个列的数据选出来,中间PreID列我要用对应
的Name来表示,而不是ID。
小弟苦思冥想,好像没发实现,不知各位看法如何?
解决方案 »
- 求对大数据量的表的新增与查询同时操作的速度解决?
- sqlserver 计算问题,请前辈指点!!
- 找出表中一个字段的内容包含另一个字段,怎么写???
- 求教一下:目前用Access数据库 ,之后打算转到SQL数据库,请问我在定义Access数据库表的时候要注意些什么问题?从Access转移到SQL的时候
- 求一个sql,谢谢!
- 请教高手
- 为什么我这个存贮过程返回的值都为空呀?
- 请教请教,关于导入数据---datetime类型
- 请问怎样能批量修改存储过程的所有者???
- 复合文档中,包含了"存储"和"流",相当于文件系统中的"目录"和"文件","存储"用IStorage进行操作,"流"用IStream进行操作,但是这个IStorage在vc中是一个类,vb中如何来创建,引用
- 因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务
- mssql 远程连接 安全问题大讨论 大家都关心的问题 散分
declare @course table (ID tinyint,PreID tinyint,Name varchar(10))
insert into @course
select 1,null,'初级课程' union all
select 2,1,'中低级课程' union all
select 3,2,'中级课程' union all
select 4,3,'中高级课程' union all
select 5,4,'高级课程'select a.ID,b.Name,a.Name from @course as a left join @course as b on a.PreID = b.ID
/*
ID Name Name
---- ---------- ----------
1 NULL 初级课程
2 初级课程 中低级课程
3 中低级课程 中级课程
4 中级课程 中高级课程
5 中高级课程 高级课程
*/
select ID,
(select Name
from course
where PreID = t.PreID) as PreName,
Name
from course t