现在又这样的一个树形结构,保存在2个表里,tabParent,tabchild。
tabParent表的字段如下
ID,PartID,BomID,NametabChild表字段如下
ID,PartID,BomID,Name以上2表,ID字段没有实际意义。PartID表示节点表示,BomID表示父子关系的表示,Name表示节点的名称。对于树的节点,每个节点有唯一的partID,如果该节点有子节点,那个则有一条记录在tabParent中,并且分配一个BomID,如果一个节点是某个节点的字节点,则在tabchild中有一条记录。对于树,根节点A下有B、C、D节点,节点D下有E、F节点,则tabParent中有2条记录,
ID,PartID,BomID,Name
1, 1, 1, A
2, 4, 2, DtabChild中有5条记录,
ID,PartID,BomID,Name
1, 2, 1, B
2, 3, 1, C
3, 4, 1, D
4, 5, 2, E
5, 6, 2, F那么要读出树的结构,可以按照层次关系反复的查询2个表,有没有可能,使用一次查询,一条SQL语句,能够把表的结构查询出来了。请各位讨论,谢谢了!
tabParent表的字段如下
ID,PartID,BomID,NametabChild表字段如下
ID,PartID,BomID,Name以上2表,ID字段没有实际意义。PartID表示节点表示,BomID表示父子关系的表示,Name表示节点的名称。对于树的节点,每个节点有唯一的partID,如果该节点有子节点,那个则有一条记录在tabParent中,并且分配一个BomID,如果一个节点是某个节点的字节点,则在tabchild中有一条记录。对于树,根节点A下有B、C、D节点,节点D下有E、F节点,则tabParent中有2条记录,
ID,PartID,BomID,Name
1, 1, 1, A
2, 4, 2, DtabChild中有5条记录,
ID,PartID,BomID,Name
1, 2, 1, B
2, 3, 1, C
3, 4, 1, D
4, 5, 2, E
5, 6, 2, F那么要读出树的结构,可以按照层次关系反复的查询2个表,有没有可能,使用一次查询,一条SQL语句,能够把表的结构查询出来了。请各位讨论,谢谢了!
1条SQL语句不行的。
2005一条语句是可以查出来的.
http://community.csdn.net/Expert/topic/4931/4931298.xml?temp=.5863153
这个帖子中, 我和第2个处理方法使用的是2005中特有的CTE, 即为一句实现循环查询
如果用SQL语句显示结果怎么能显示树状结构呢?
如果只是简单的想知道父子关系,只需简单的:
select p.PartID as p_PartID,p.[Name],c.PartID as c_PartID,c.[Name]
from tabParent p left join tabChild c on p.BomID=c.BomID
就可以了。我估计楼主不是这个意思。