来自两个表的父子数据的SQL查询

时间:2014-05-20 07:25:43

标签: asp.net sql

我有2个表,一个表是课程类别,第二个是课程

课程类别表

以下数据存储:

CategoryId |姓名

1 | MCA

2 | MBA

课程表

以下数据存储:

Id |名称| CategoryId |的ParentId

1 | Asp.Net | 1 | 0

2 | C#| 1 | 1

3 |财务| 2 | 0

我想要关注输出

Id |名称|父

1 | MCA | 0

2 | MBA | 0

3 | Asp.Net | 1

4 | C#| 3

5 |财务| 2

我是否必须使用嵌套查询,或者我应该将两个表与外键和主键相关联,或者应该进行任何映射。如果没有给我一个解决方案来执行此操作。

提前致谢

2 个答案:

答案 0 :(得分:0)

select rownum as id, name, 0 as parent 
from Category 
union all 
select rownum, name, id 
from course

答案 1 :(得分:0)

我假设您只有一个级别的孩子(没有像父母那样的案例< -child< -child)

select c.id, t.name, parent.name, c.name from course c
join category t on c.categoryId = t.id
left join (select c2.id, c2.name from course c2) parent on c.parentId = parent.id

这应该给你类似

的东西
id |categoryname  |parentname  |coursename
1  |MCA           |null        |Asp.Net
2  |MCA           |Asp.Net     |C#
3  |MBA           |null        |Finance

这不完全是您想要的结果,但应该可以显示您想要的效果。