MySQL——自连接及联表查询练习

自连接

自己的表和自己的表连接,核心:一张表拆为两张一样的表即可。

父类:

|----------------|------------------|
| categoryid | categoryName |
| 2 | 信息技术 |
| 3 | 软件开发 |
| 5 | 美术设计 |
| | |

子类:

|---------|----------------|------------------|
| pid | categoryid | categoryName |
| 3 | 4 | 数据库 |
| 2 | 8 | 办公信息 |
| 3 | 6 | web开发 |
| 5 | 7 | ps技术 |

子类的pid = 父类的categoryid

操作:查询父类对应的子类关系

|--------|--------|
| 父类 | 子类 |
| 信息技术 | 办公信息 |
| 软件开发 | 数据库 |
| 软件开发 | web开发 |
| 美术设计 | ps技术 |

代码演示:

sql 复制代码
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','办公信息');

-- 查询父子信息:把一张表看成两个一模一样的表
SELECT a.categoryName AS '父栏目',b.categoryName AS '子栏目'
FROM category AS a,category AS b
WHERE a.categoryid = b.pid
相关推荐
hikktn5 小时前
Oracle批量UPDATE空值覆盖陷阱:CASE WHEN优雅防御方案【宗申集团】
数据库·oracle
Han_han9195 小时前
数据库基本操作:
数据库
J.Kuchiki6 小时前
【PostgreSQL 内核学习:平衡 K 路归并(Balanced k-way Merge)】
数据库·学习·postgresql
xieliyu.6 小时前
MySQL 全套入门笔记:基础、库操作、数据类型
数据库·笔记·mysql
lvbinemail6 小时前
【无标题】
数据库·postgresql·zabbix·监控
技术小甜甜6 小时前
[办公效率] Excel 表格越做越乱,先整理字段、格式还是公式?
数据库·excel·办公效率·数据整理
Data-Miner6 小时前
休闲食品行业数据分析平台建设方案,揭秘增长新引擎!
大数据·数据库·数据分析
invicinble6 小时前
sql层面语法的总结(mysql层面语法,主要侧重于sql的查询相关的信息量积累)
sql·mysql·oracle
KKKlucifer6 小时前
数据分类分级排名解析:三大核心能力决定选型方向
大数据·数据库·分类
fly spider6 小时前
Spring 原理总览:从启动到请求执行
java·数据库·spring