MySQL 技巧(⼆)——⽆限级分类表设计
⽆限级分类表的设计(掌握'⾃⾝连接')
类似图书这种,会有很多种分类,⽽且在现实⽣活中这种分类会⽆限的往下分,所以不可能每有⼀个分类就创建⼀个分类表。应该使⽤下⾯这种语句
然后再模拟图书类的分类来个⼩demo
从下图中很容易可以看到,'电⼦书'为顶级分类,所以parent_id为0,以此类推....
这时候我们需要查询具体分类以及对应⽗类,我们就需要假想有两张相同的表,⼀张是⽗表(parent),⼀张是⼦表(son),⾃⼰连接⾃⼰查询,⼦表的parent_id = ⽗表的type_id,⼦表中的type_name就是⼦类分类,⽗表中的type_name就是⽗类分类名称
DROP TABLE IF EXISTS tdb_goods_types;
CREATE TABLE tdb_goods_types(
type_id SMALLINT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
mysql语句分类type_name VARCHAR (50) COMMENT '分类名称',
parent_id SMALLINT NOT NULL DEFAULT 0 COMMENT '⽗类ID'
数据库新增一万条数据);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('电⼦书',DEFAULT );
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('⽂学',1);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('影视原著',2);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('中外名著',2);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('漫画杂志',2);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('⽂学',2);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('⼩说',2);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('传记',2);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('经管',1);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('⾦融投资',9);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('市场营销',9);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('管理学',9);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('职场进阶',9);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('科学新知',1);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('⼈⼯智能',14);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('电⼦商务',14);
INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('⼤数据',14);
自学abap开发一年INSERT INTO tdb_goods_types(type_name,parent_id) VALUES ('科普',14);
也可以⽤另⼀种思路,查看⽗类,以及对应的⼦类
SELECT
modify file失败
FROM
tdb_goods_types AS s
LEFT JOIN tdb_goods_types AS p ON s.parent_id = p.type_id;SELECT
FROM
tdb_goods_types AS p
LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id;
改进:获取的是⼦类的数量
SELECT
pe_name) AS⼦类数⽬
FROM
tdb_goods_types AS p
LEFT JOIN tdb_goods_types AS s ON s.parent_id = p.type_id GROUP BY
ORDER BYextend函数 python
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论