SQL--单表递归查询

1 做项目的时候碰到单表递归查询的情况, 不比如部门、子部门。根据root部门ID查询该部门下的所有的子部门。

CREATE TABLE `dept` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `deptid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

数据:

INSERT INTO `dept` VALUES ('1', '语音业务部', null);
INSERT INTO `dept` VALUES ('2', '小云AI', '1');
INSERT INTO `dept` VALUES ('3', '云客宝', '1');
INSERT INTO `dept` VALUES ('4', '流量业务部', null);
INSERT INTO `dept` VALUES ('5', 'MIFI', '4');
INSERT INTO `dept` VALUES ('6', '物联网卡', '4');

查询语音业务部下所有的子部门:

SELECT
    b.*
FROM
    dept a
INNER JOIN dept b ON a.id = b.deptid
WHERE
    a.id = 1

这里写图片描述

猜你喜欢

转载自blog.csdn.net/BtWangZhi/article/details/80344995