关于数据库的查询问题
table的子段如下:
id int 栏目ID,
categoryName nvarchar(50) 栏目名称,
upid int 父栏目ID;
用sql语句如何获取所有栏目的子栏目呢(子栏目下还有子栏目)
------解决方案--------------------用第三范式建表就不会有这种问题。
------解决方案--------------------给个思路:
建一个结果临时表,
调用一个SP, 将结果插入临时表, 递归 , 返回临时表, OK.
------解决方案--------------------数据库设计不合理
------解决方案--------------------第三范式建表是什么,请明示。
------解决方案--------------------upid int 改了吧叫KeyNum
假设这样的树:
栏目1 keyNum:aa
栏目1子1 keyNum:aaaa
栏目1子2 keyNum:aaab
栏目1子3 keyNum:aaac
栏目1子3子1 keyNum:aaacaa
这样在查询的时候 要查询 栏目1的所有项目就 like keyNum 'aa% '
这样在查询的时候 要查询 栏目1子3 的所有项目就 like keyNum 'aaac% '
------解决方案--------------------这样说LZ明白了吗?我认为这种方法,是一种很垃圾的办法,既然是树,为什么不一级一级的看,非要点第一个看它所有的下属呢?
------解决方案--------------------to:skyyun(落枫飘零)
不会写存储过程,可以在程序中递归啊。
------解决方案--------------------我也给个思路吧.
在建表时采用编码的方式在区分栏目的层次
比如:是第一层主栏目的话就用01两位表示,第二层的话就在01后加上三位数表示,以此类推,就能把层次很好的表示出来.
这样做的话的好处就是你可以很方便的对层次里的内容进行查询