MySQL 自身级联查询(适用于组织结构等层级关系的表)

MySQL 自身级联查询(适用于组织结构等层级关系的表)_第1张图片

直接上例子: 

CREATE TABLE `t_biological_dic` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `BM` varchar(42) COLLATE utf8_unicode_ci DEFAULT NULL,
  `FL_BM` varchar(42) COLLATE utf8_unicode_ci DEFAULT NULL,
  `MC` varchar(600) COLLATE utf8_unicode_ci DEFAULT NULL,
  `XH` decimal(22,0) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('1', 'BM10000', NULL, '生物', '1');                    #生物
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('2', 'BM11001', 'BM10000', '动物', '1');            #生物子类1
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('3', 'BM11002', 'BM10000', '植物', '2');            #生物子类2
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('4', 'BM11003', 'BM10000', '微生物', '3');        #生物子类3

INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('5', 'BM11101', 'BM11001', '无脊椎动物', '1');
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('6', 'BM11102', 'BM11001', '脊椎动物', '2');

INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('7', 'BM11111', 'BM11102', '鱼', '1');
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('8', 'BM11112', 'BM11102', '爬行动物', '2');
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('9', 'BM11113', 'BM11102', '鸟', '3');
INSERT INTO `test`.`t_biological_dic` (`id`, `BM`, `FL_BM`, `MC`, `XH`) VALUES ('10', 'BM11114', 'BM11102', '哺乳动物', '4');

-- 自身连接查询 查询【脊椎动物】分类下的所有【字典】

select child.XH,parent.BM,parent.MC,child.BM,child.MC
     from t_biological_dic parent
        join t_biological_dic child
        on parent.BM= child.FL_BM
    where parent.MC="脊椎动物"
order by child.XH ASC

 查询结果:

1    BM11102    脊椎动物    BM11111    鱼
2    BM11102    脊椎动物    BM11112    爬行动物
3    BM11102    脊椎动物    BM11113    鸟
4    BM11102    脊椎动物    BM11114    哺乳动物

你可能感兴趣的:(MySQL 自身级联查询(适用于组织结构等层级关系的表))