自关联

//www.greatytc.com/p/201762e068b2

create table  node_tree(
   id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   node_name varchar(128) NOT NULL DEFAULT '',
   up_node_id int,
   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');




select 
node_tree1.id as  主表ID,
node_tree1.name as 主表名字, 
node_tree2.name  as 从表名字,
node_tree2.up_id  as 从表上级ID 

from node_tree1, node_tree2 

where node_tree1.name='jx';



select 
node_tree1.id as  主表ID,
node_tree1.node_name as 主表名字, 
node_tree2.node_name  as 从表名字,
node_tree2.up_node_id  as 从表上级ID 

from node_tree as node_tree1, node_tree as node_tree2 

where node_tree1.node_name='jx'
and node_tree1.id = node_tree2.up_node_id;

image.png
image.png

image.png

image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容