select a.orgid,a.orgname
from org a
where level<=3
start with a.orgid in (select b.orgid from person b where b.name='xxx')
connect by a.orgid=prior a.uporganid你是怎么写的
from org a
where level<=3
start with a.orgid in (select b.orgid from person b where b.name='xxx')
connect by a.orgid=prior a.uporganid你是怎么写的
检查下person表的name字段上是否有索引
部门表和员工表的数据量分别有多大?部门表应该不大吧另外烦请把想要的结果描述清楚
FROM person p
LEFT JOIN org d1 ON d1.orgid = p.orgid
LEFT JOIN org d2 ON d2.orgid = d1.uporganid
LEFT JOIN org d3 ON d3.orgid = d2.uporganid
WHERE p.name = '张三'
--单独这个查询要多少时间?比较长就要在 name 上建索引。
SELECT * FROM person p WHERE p.name = '张三'
还有org.orgid应该是主键吧。
单独查询SELECT * FROM person p WHERE p.name = '张三',20条数据只需要0.093秒