我有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
我是否必须使用嵌套查询,或者我应该将两个表与外键和主键相关联,或者应该进行任何映射。如果没有给我一个解决方案来执行此操作。
提前致谢
答案 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
这不完全是您想要的结果,但应该可以显示您想要的效果。