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