mysql 多级查询问题

杨彬Lennon 发布于 2016/12/19 17:42
阅读 513
收藏 0

有如下字段:id    p_id    level    order     is_leaf

需求是根据id,查出所有下级节点。目前是这样做的:

SELECT *
FROM `table` a 
INNER JOIN `table` b ON a.id=b.p_id OR a.id=b.id
INNER JOIN `table` c ON b.id=c.p_id OR b.id=c.id
INNER JOIN `table` d ON c.id=d.p_id OR c.id=d.id
WHERE a.id IN (xxx)

我不知道这样是否比一级一级的查更优,但是这样效率很差,有锁表的风险,想问一下有没有更优的sql,不用存储过程,不能改表结构,谢谢了


加载中
返回顶部
顶部