单位表org:单位编号orgid,单位名称orgname,上级单位编号uporganid,
员工表person:姓名name,单位编号orgid
需求是:输入一个人的姓名查询出他的单位名称,上级单位名称,上二级单位名称
我自己写的方法速度有点慢,每页显示10条数据的话,点击查询后,2-3秒才会查出来,我想问有没有速度快一点查询方法
------解决思路----------------------
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
你是怎么写的
------解决思路----------------------
2分半,没索引的话,你表里得有百万的员工与部门啊

------解决思路----------------------
SELECT p.name, d1.orgname, d2.orgname, d3.orgname
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应该是主键吧。
------解决思路----------------------
org.orgid是主键吗?应该是你的org表存在orgid重复的现象