【发布时间】:2011-04-14 09:26:31
【问题描述】:
我要sql查询
SELECT child.name,(COUNT(parent.name) - (parentDepth.depth + 1)) AS depth
from category as child,category as parent,category as sub_parent,
( select child.name,(count(parent.name)-1) as depth from category as child,category as parent where child.lft between parent.lft and parent.rgt and child.name='ELECTRONICS' ) as parentDepth
where child.lft between parent.lft and parent.rgt and child.lft between sub_parent.lft and sub_parent.rgt and sub_parent.name=parentDepth.name
group by child.name having depth >0 order by child.lft
使用连接
SELECT child.name,(COUNT(parent.name) - (parentDepth.depth + 1)) AS depth from
category as child join category as parent on child.lft between parent.lft and parent.rgt join category as sub_parent on child.lft between sub_parent.lft and sub_parent.rgt,
( select child.name,(count(parent.name)-1) as depth from category as child,category as parent where child.lft between parent.lft and parent.rgt and child.name='ELECTRONICS' ) as parentDepth
where sub_parent.name=parentDepth.name
group by child.name having depth >0 order by child.lft
我想知道一个更好!我的意思是性能和速度
【问题讨论】:
标签: mysql select join performance