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
相关推荐
VaporGas8 分钟前
Spring-bean实例化的方式
java·数据库·spring
代码吐槽菌25 分钟前
基于SSM的校园自助洗衣系统【附源码】
java·数据库·毕业设计·ssm·计算机专业
2c237c638 分钟前
解决远程连接AlpineLinux Mysql/MariaDB 无法连接的问题
linux·mysql·mariadb
湖南罗泽南44 分钟前
C# 事件和委托的详细介绍
服务器·数据库·c#
网恋被骗四块五1 小时前
ssm模糊知识点整合
数据库·mysql
蜗牛学苑_武汉1 小时前
Springboot3保存日志到数据库
数据库
DieSnowK1 小时前
[Redis][主从复制][上]详细讲解
数据库·redis·分布式·缓存·集群·高可用·主从复制
Mephisto.java1 小时前
【力扣 | SQL题 | 每日三题】力扣1148, 1327, 1211, 1174
数据库·sql·leetcode
多多*2 小时前
OJ在线评测系统 前端开发整合开源组件 Monaco Editor 并且开发创建题目页面
服务器·前端·javascript·数据库·算法·开源
wclass-zhengge2 小时前
Redis篇(应用案例 - 短信登录)(持续更新迭代)
数据库·redis·缓存