日期:2014-05-18  浏览次数:20463 次

网状关系的表结构如何查询关联的关系!
假如现在有这样的表关系
A 关联 B 
B 关联 C和D
然而D表关联A表
C表关联E表

如果给出A表和E表,需要查询出A表到E表这之间一连串的表关系
也就是 
A B C E

但是查询可能会出现
 A B D A 然后就死循环下去了

这样的查询该如何设置相应的表结构满足呢?

------解决方案--------------------


递归?
------解决方案--------------------
一般是数据库设计不合理,一般情况下需要用约束限制.
如果确实没设计错(如道路系统),那查询时就要检测回环.也就是要用path记录路径,若下一节点已经在父路径中,则行成了圆环.
------解决方案--------------------
查ABCE 那就是D表没关系?

select *
from a join b on
join c on
join e

这样?