美文网首页
数据库之自关联

数据库之自关联

作者: 互联网中的一个咸鱼 | 来源:发表于2019-08-14 08:36 被阅读0次

准备表和数据

create table  node_tree(
   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,     id
   node_name varchar(128) NOT NULL DEFAULT '',           节点名字
   up_node_id int,                                            上级结点id
   node_level char(1)                                       节点等级
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;

insert into node_tree(node_name,up_node_id,node_level)
    values 
    ('jx', NULL, '1'),
    ('jx.webserver', 1, '2'),
    ('jx.webserver.nginx1', 2, '3'),
    ('jx.logserver', 1, '2')


insert into node_tree(node_name,up_node_id,node_level)
    values 
    ('jx.logserver.logstash1', 4, '3')





create table  node_tree1(
   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   name varchar(128) NOT NULL DEFAULT '',
   level char(1)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;


create table  node_tree2(
   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   name varchar(128) NOT NULL DEFAULT '',
   up_id int,
   level char(1)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;




insert into node_tree1(name, level)
    values 
    ('yx', '1');

insert into node_tree2(name, up_id, level)
    values 
    ('jx.webserver', 1, '2'),
    ('jx.logserver', 1, '2')


insert into node_tree1(name, level)
    values 
    ('xs', '1');

insert into node_tree2(name, up_id, level)
    values 
    ('xs.webserver', 2, '2');

查询jx节点的子节点

select  node_tree.node_name,nt2.node_name  from node_tree,node_tree as nt2 where
node_tree.node_name='jx' and node_tree.id=nt2.up_node_id

有一个表的别名是nt2,相当于将两个表连接起来,两个表之间有一定的关系

相关文章

网友评论

      本文标题:数据库之自关联

      本文链接:https://www.haomeiwen.com/subject/pxjbjctx.html