自连接

自连接(了解)

自己的表和自己的表连接

核心:一张表拆为两张表


-- 创建一个表
CREATE TABLE `category` (
`categoryid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主题id',
`pid` INT(10) NOT NULL COMMENT '父id',
`categoryName` VARCHAR(50) NOT NULL COMMENT '主题名字',
PRIMARY KEY (`categoryid`)
) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8
-- 插入数据
INSERT INTO `category` (`categoryid`, `pid`, `categoryName`)
VALUES('2','1','信息技术'),
('3','1','软件开发'),
('4','3','数据库'),
('5','1','美术设计'),
('6','3','web开发'),
('7','5','ps技术'),
('8','2','办公信息');

-- 查询父子信息,把一张表看为两张一模一样的表
-- 把这张表看为表a和表b,pid=1代表是父栏目,子类的父栏目为与其序号(pid)对应的父序号(categoryid)
-- 如信息技术pid为1代表其为父栏目,其categoryid为2与办公信息的pid一样,所以办公信息为信息技术的子栏目
SELECT a.`categoryName` AS 父栏目,b.`categoryName` 子栏目
FROM `category` AS a,`category` AS b
WHERE a.`categoryid` = b.`pid`

 

posted @ 2021-04-23 14:20  术树  阅读(193)  评论(0)    收藏  举报