SQL每日一题-Q001

2024-01-10 14:36:57 浏览数 (1)

题目 Q001

背景描述

复兴集团公司中有一份组织架构信息,包括部门信息及部分具有领导职务的雇员信息,详见下图示例:

role_id

role_name

parent_id

level

role_type

01

复兴集团公司

L1

department

0101

总部

01

L2

department

010101

总裁办公室

0101

L3

department

0102

北京分公司

01

L2

department

010201

项目部

0102

L3

department

01020101

项目一部

010201

L4

department

01020102

项目部总监

010201

L4

employee

010202

市场部

0102

L3

department

01020201

市场部总监

010202

L4

employee

01020202

市场部专员

010202

L4

employee

需求描述

现在想提取一份仅包含部门信息的组织架构信息,要求从左向右依次展示各层级部门信息,去除所有雇员信息,需求示例如下图所示:

dep_id_l1

dep_name_l1

dep_id_l2

dep_name_l2

dep_id_l3

dep_name_l3

dep_id_l4

dep_name_l4

01

复兴集团公司

0101

总部

010101

总裁办公室

01

复兴集团公司

0102

北京分公司

010201

项目部

01020101

项目一部

01

复兴集团公司

0102

北京分公司

010202

市场部

考察点

自联结

建表语句

代码语言:javascript复制
-- ----------------------------
-- Table structure for dep_list
-- ----------------------------
DROP TABLE IF EXISTS `dep_list`;
CREATE TABLE `dep_list`  (
  `role_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色编号',
  `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '角色名称',
  `parent_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '父编号',
  `level` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '层级',
  `role_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '角色类型',
  PRIMARY KEY (`role_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

示例数据信息

代码语言:javascript复制
-- ----------------------------
-- Records of dep_list
-- ----------------------------
INSERT INTO `dep_list` VALUES ('01', '复兴集团公司', '', 'L1', 'department');
INSERT INTO `dep_list` VALUES ('0101', '总部', '01', 'L2', 'department');
INSERT INTO `dep_list` VALUES ('010101', '总裁办公室', '0101', 'L3', 'department');
INSERT INTO `dep_list` VALUES ('0102', '北京分公司', '01', 'L2', 'department');
INSERT INTO `dep_list` VALUES ('010201', '项目部', '0102', 'L3', 'department');
INSERT INTO `dep_list` VALUES ('01020101', '项目一部', '010201', 'L4', 'department');
INSERT INTO `dep_list` VALUES ('01020102', '项目部总监', '010201', 'L4', 'employee');
INSERT INTO `dep_list` VALUES ('010202', '市场部', '0102', 'L3', 'department');
INSERT INTO `dep_list` VALUES ('01020201', '市场部总监', '010202', 'L4', 'employee');
INSERT INTO `dep_list` VALUES ('01020202', '市场部专员', '010202', 'L4', 'employee');

0 人点赞