数据库查询问题select

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:52:33
ClassID ... ... ... ParentID
1 0
2 0
3 0
4 1
5 1
6 2
7 2
8 3
按照这个表最后得到的效果是
栏目一
栏目一.小栏目1
栏目一.小栏目2
栏目二
栏目二.小栏目1
栏目二.小栏目2
栏目三
栏目三.小栏目1
这个语句要怎么写啊?请各位高手指点了。谢谢了
晕,对不起,可能是百度的问题,我的不是两个表的。是一个表里的。请看
ClassID ... ... ... ParentID
1 ................. 0
2 ................. 0
3 ................. 0
4 ................. 1
5 ................. 1
6 ................. 2
7 ................. 2
8 ................. 3

realsex我的表名是Class
你重新再写过一次按照我的表名来写语句好吗?谢谢了。
晕,我已经弄了一个早上了,头脑已经很乱了。你能不能不要用那个TABLE1,TABLE2之类这些例名来代表好吗?你直接把那Class这个表名直接代入进去好吗?谢谢了,这分是你的了。我只要看得明白就知道怎么写了,我是在学校学MSSQL语句不用功所有有一些关联上的问题不懂。
大概的问题已经可以解决了。但是能不能
栏目一.小栏目1
栏目一.小栏目2
栏目二.小栏目1
栏目二.小栏

从你的数据上来分析,ParentID 为0的应该就是一级名称,ParentID不为0的就是二级名称
最终结果如下
SELECT ClassName
FROM [Class]
WHERE ParentID = 0
UNION ALL
SELECT [Class2].ClassName+'.'+[Class].ClassName
FROM [Class] INNER JOIN
[Class] AS [Class2] ON [Class].ParentID = [Class2].ClassID
ORDER BY ClassName

如果是取ClassID显示的话,就把ClassName换成ClassID,这是个自表关联的问题,你把它想象成两个表就好理解了
别名为[Class2]的是父级表,数据表实际是还是[Class]

如果你还没解决加我QQ 我帮你解决
就是不理解你说的意思