SEED
-- 自连接数据库:
CREATE TABLE `school`.`category`( `categoryid` INT(3) NOT NULL COMMENT 'id', `pid` INT(3) NOT NULL COMMENT '父id 没有父则为1', `categoryname` VARCHAR(10) NOT NULL COMMENT '种类名字', PRIMARY KEY (`categoryid`) ) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci;
insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('2', '1', '信息技术');
insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('3', '1', '软件开发');
insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('5', '1', '美术设计');
insert into `school`.`category` (`categoryid`, `pid`, `categorynamE`) values ('4', '3', '数据库');
insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('8', '2', '办公信息');
insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('6', '3', 'web开发');
insert into `school`.`category` (`categoryid`, `pid`, `categoryname`) values ('7', '5', 'ps技术');
思路: 可以拆分成两个表
categoryid | categoryname |
---|---|
2 | 信息技术 |
3 | 软件开发 |
5 | 美术设计 |
pid | categoryname |
---|---|
3 | 数据库 |
2 | 办公信息 |
3 | web开发 |
5 | ps技术 |
想要得到如下结果:
父栏目 | 子栏目 |
---|---|
软件开发 | 数据库 |
软件开发 | web开发 |
美术设计 | ps技术 |
信息技术 | 办公信息 |
解题答案:
SELECT a.categoryname AS '父栏目', b.categoryname AS '子栏目'
FROM category AS a , category AS b
WHERE a.categoryid = b.pid