日期:2014-05-16  浏览次数:20847 次

求教sql语句,查每门课的所有先修课,不是间接先行课
下边是算课程课程的间接先修课的sql语句,如果想算它所有的先修课,应该怎么写





但是,如果想得到下面的结果,查每门课的所有先修课,该怎么写。

所有先修课:
A B
A C
A D
A E
B C
B D
B E
C D
C E
D E

------解决方案--------------------

with cte as
(
    select Cno,Cpno from Courses
    union all
    select c.Cno, d.Cpno from cte c inner join Courses d
    on c.Cpno = d.Cno
)
select * from cte

没有数据库供我调试用,我只能想像下结果