自连接:
# board表
mysql> select * from board;
+----+-----------+-------+-----------+
| id | name | intro | parent_id |
+----+-----------+-------+-----------+
| 1 | 后端 | NULL | NULL |
| 2 | 前端 | NULL | NULL |
| 3 | 移动端 | NULL | NULL |
| 4 | 大数据 | NULL | NULL |
| 5 | 云计算 | NULL | NULL |
| 6 | AI | NULL | NULL |
| 7 | java | NULL | 1 |
| 8 | python | NULL | 1 |
| 9 | php | NULL | 1 |
| 10 | go | NULL | 1 |
| 11 | JS | NULL | 2 |
| 12 | html | NULL | 2 |
| 13 | CSS | NULL | 2 |
| 14 | jQuery | NULL | 2 |
+----+-----------+-------+-----------+
14 rows in set (0.00 sec)
# 查询父级板块
mysql> select * from board where parent_id is null;
+----+-----------+-------+-----------+
| id | name | intro | parent_id |
+----+-----------+-------+-----------+
| 1 | 后端 | NULL | NULL |
| 2 | 前端 | NULL | NULL |
| 3 | 移动端 | NULL | NULL |
| 4 | 大数据 | NULL | NULL |
| 5 | 云计算 | NULL | NULL |
| 6 | AI | NULL | NULL |
+----+-----------+-------+-----------+
6 rows in set (0.00 sec)
# 知道名字是Java查询它的父级板块
mysql> select * from board where id = (select parent_id from board where name = "java");
+----+--------+-------+-----------+
| id | name | intro | parent_id |
+----+--------+-------+-----------+
| 1 | 后端 | NULL | NULL |
+----+--------+-------+-----------+
1 row in set (0.00 sec)
# 知道某个面板是前端,查询它的所有子版块
mysql> select * from board where parent_id = (select id from board where name = "前端");
+----+--------+-------+-----------+
| id | name | intro | parent_id |
+----+--------+-------+-----------+
| 11 | JS | NULL | 2 |
| 12 | html | NULL | 2 |
| 13 | CSS | NULL | 2 |
| 14 | jQuery | NULL | 2 |
+----+--------+-------+-----------+
4 rows in set (0.00 sec)
自连接:外键指向表自身的主键文章来源:https://www.toymoban.com/news/detail-801942.html
子查询
#1:子查询是将一个查询语句嵌套在另一个查询语句中。内部嵌套其他select语句的查询,称为外查询或
主查询
#2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。
#3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字
#4:还可以包含比较运算符:= 、 !=、> 、<等
注意:
1、子查询要包含在括号内。
2、将子查询放在比较条件的右侧。
3、单行操作符对应单行子查询,多行操作符对应多行子查询
子查询的效率较差,尽量减少子查询,而采用多表关联查询文章来源地址https://www.toymoban.com/news/detail-801942.html
到了这里,关于MYSQL自连接、子查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!