大佬们好, 求助一个问题, 跪求解决方案
现有表
CREATE TABLE `emp` ( `emp_id` int NOT NULL AUTO_INCREMENT COMMENT '员工 id', `emp_name` varchar(255) DEFAULT NULL COMMENT '员工名称', `gender` char(1) DEFAULT NULL COMMENT '性别', `manager_id` int DEFAULT NULL COMMENT '领导 id', `dept_id` int DEFAULT NULL COMMENT '部门 id', PRIMARY KEY (`emp_id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb3; INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (1, '张华', '1', 0, 10); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (2, '黄凯', '1', 1, 10); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (3, '张航天', '0', 1, 20); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (4, '李顺然', '1', 3, 20); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (5, '彭磊', '0', 3, 20); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (6, '李凯', '0', 3, 20); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (7, '王小明', '1', 5, 30); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (8, '杨浩', '1', 7, 30); INSERT INTO `atguigudb`.`emp` (`emp_id`, `emp_name`, `gender`, `manager_id`, `dept_id`) VALUES (9, '林和', '1', 7, 30);
我想查询每个部门的领导信息
1 mahone009 OP 目前只能写出某个部门的领导者信息, 比如查询 20 号部门领导人 SELECT * FROM emp WHERE emp_id IN ( SELECT t1.emp_id FROM emp t1 INNER JOIN emp t2 ON t1.emp_id = t2.manager_id WHERE t2.dept_id = 20 ) AND dept_id = 20 |
2 mumbler 2024-03-05 00:59:08 +08:00 SELECT DISTINCT ON (dept_id) dept_id, manager_id FROM emp ORDER BY dept_id, manager_id; |
![]() | 3 Vegetable 2024-03-05 01:06:59 +08:00 子查询为什么查询特定的部门的 manager_id ,而不是所有 manager_id? select * from empwhere emp_id in (select distinct manager_id from emp where manager_id is not null); 这不就是所有的领导了吗?还是你没说清楚? |
4 KeybordDancer 2024-03-05 01:10:00 +08:00 这数据不对吧,3 号员工和 4 号员工,都在部门 20 ,但领导却不一样,3 号的领导是 1 ,4 号的领导是 3 |
5 mahone009 OP 理想查询数据为 dept_id emp_name 10 张华 20 张航天 30 王小明 |
7 mahone009 OP 已解决!!! |