如何让MySQL中单句实现无限层次父子关系查询

如何让MySQL中单句实现无限层次父子关系查询,第1张

表结构和数据

CREATE TABLE table1(id int, name varchar(10), parent_id int);

INSERT table1 VALUES

(1, ‘Home’, 0),

(2, ‘About’, 1),

(3, ‘Contact’, 1),

(4, ‘Legal’, 2),

(5, ‘Privacy’, 4),

(6, ‘Products’, 1),

(7, ‘Support’, 2);

查询 id = 5 的所有父级

SELECT IDlevel, DATA FROM(

SELECT

@id as _id,

( SELECT @id := parent_id

FROM table1

WHERE id = @id

) as _pid,

从你的数据表中读出父子节点表到DataTable中,然后按上下级关系一个个添加就可以。添加父子节点只需另写一个功能很数据表中加就行,比较简单。

给你一个示例,大概是这样子。

private void ShowTree()

{

thisSystemTreeNodesClear();

TreeNode rootNode = new TreeNode();

rootNodeText = "XXXXXXXX";

rootNodeValue = "";

int status = 0;

rootNodeNavigateUrl = "javascript:SelectNode('root',' '," + ConvertToString(nodeid++) + "," + status + ")";

thisSystemTreeNodesAdd(rootNode);

SubsystemManagement subSystem = new SubsystemManagement();

DataTable dt = new DataTable();

dt = subSystemGetAllsubsystemInfo(); //显示子系统名称

foreach (DataRow dr in dtRows)

{

TreeNode subNode = new TreeNode();

string subSysName = dr["CFunName"]ToString();

subNodeText = subSysName;

string subSysId = dr["CFunctionID"]ToString();

subNodeValue = subSysId;

status = 1;

subNodeNavigateUrl = "javascript:SelectNode('subsys','" + subSysId + "'," + ConvertToString((nodeid++)) + "," + status + ")";

rootNodeChildNodesAdd(subNode);

rootNodeExpanded = true;

DataTable sdt = new DataTable();

sdt = subSystemGetModulesBySubSysId(subSysId); //显示模块名称

foreach (DataRow sdr in sdtRows)

{

TreeNode sNode = new TreeNode();

string moduleName = sdr["CFunName"]ToString();

sNodeText = moduleName;

string moduleId = sdr["CFunctionId"]ToString();

sNodeValue = moduleId;

status = 1;

sNodeNavigateUrl = "javascript:SelectNode('module','" + moduleId + "'," + ConvertToString((nodeid++)) + "," + status + ")";

subNodeChildNodesAdd(sNode);

subNodeExpanded = true;

DataTable fdt = new DataTable();

fdt = subSystemGetFunctionsByModuleId(moduleId); //显示功能名称

foreach (DataRow fdr in fdtRows)

{

TreeNode fNode = new TreeNode();

fNodeText = fdr["CFunName"]ToString();

fNodeValue = fdr["CFunctionId"]ToString();

status = 2;

fNodeNavigateUrl = "javascript:SelectNode('function','" + fdr["CFunctionId"]ToString() + "'," + ConvertToString((nodeid++)) + "," + status + ")";

sNodeChildNodesAdd(fNode);

sNodeExpanded = false;

}

}

}

}

1、首先在oracle数据库创建教学管理系统需,要用到的数据表如下。

2、上述中数据表的其他信息创建。(departments表、class表、students表、course表)。

3、步骤一中数据表的其他信息创建。(teacher表、teach表、score表)。

4、然后对创建的数据表按要求输入数据值。

5、最后按照上述要求继续用插入语句添加数据值。

6、查询学生信息表中学生的学号、姓名、性别、出生日期、班级编码,并以汉字标题显示字段名。就完成了。

以上就是关于如何让MySQL中单句实现无限层次父子关系查询全部的内容,包括:如何让MySQL中单句实现无限层次父子关系查询、如何在c# treeview控件动态绑定数据库,实现2级目录,添加父节点并在父节点下添加子节点、怎么设计用户权限管理系统数据库要用到哪几张表每张表有哪些字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10170227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存