怎么查询属于父类的子类所有数据

lifer 发布于 2014/11/07 11:51
阅读 1K+
收藏 0
例如:

有一个新闻表:
id,title,category_id

有一个分类表:
id,name,pid;

有数据:

news表
1,title1,1
2,title2,2
3,title3,3
4,title4,3

分类表:
1,category1,0
2,category2,1
3,category3,1

我要查询pid=1的子类的所有数据;

不使用in查询;

请问这个怎么查,效率会高?
加载中
0
大连馋师
大连馋师
ORACLE的话有connect by with 之类的树查询。
大连馋师
大连馋师
回复 @lifer : 试试存储过程/函数,递归一下。
lifer
lifer
mysql呢?
0
battyman
battyman
一般含有parent的表,我们会保存一个叫pids(就是集合所有父类以及父类的父类的id组成的字符串)的字段,更新或者插入的时候,同时变更这个pids,假如说一个节点的id为888,他的父记录的id为777,父记录的父记录的id为666,那么888节点的pids就为;777;666;   这样在找某个节点(id=xxx)下的所有子类时,就使用like ;xxx;来找
返回顶部
顶部