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
相关推荐
Channing Lewis25 分钟前
sql server如何创建表导入excel的数据
数据库·oracle·excel
秃头摸鱼侠26 分钟前
MySQL安装与配置
数据库·mysql·adb
UGOTNOSHOT30 分钟前
每日八股文6.3
数据库·sql
行云流水行云流水1 小时前
数据库、数据仓库、数据中台、数据湖相关概念
数据库·数据仓库
John Song1 小时前
Redis 集群批量删除key报错 CROSSSLOT Keys in request don‘t hash to the same slot
数据库·redis·哈希算法
IvanCodes1 小时前
七、Sqoop Job:简化与自动化数据迁移任务及免密执行
大数据·数据库·hadoop·sqoop
tonexuan1 小时前
MySQL 8.0 绿色版安装和配置过程
数据库·mysql
JohnYan1 小时前
工作笔记- 记一次MySQL数据移植表空间错误排除
数据库·后端·mysql
我最厉害。,。2 小时前
Windows权限提升篇&数据库篇&MYSQL&MSSQL&ORACLE&自动化项目
数据库·mysql·sqlserver
远方16092 小时前
20-Oracle 23 ai free Database Sharding-特性验证
数据库·人工智能·oracle