mysql 多表联查_MySQL的多表联查
今天是周二,我们一起来研究下MySQL的多表联查啊。或许你也知道,表之间的关系有:1对1、1对多、多对多。然后......
1. 嵌套查询:一个查询的结果是另外sql查询的条件
如:查询stu表中年龄最大的是谁?
mysql> select * from stu where age=(select max(age) from stu);
mysql> select * from stu where age in(select max(age) from stu); --(子查询结果是多条时使用in查询)
+----+------+------+-----+----------+
| id | name | age | sex | classid |
+----+------+------+-----+----------+
| 14 | abc | 33 | w | python01 |
+----+------+------+-----+----------+
1 row in set (0.01 sec)
2. where关联查询
已知:员工personnel表和部门department表,其中员工表中的did字段为部门表id主键关联。
查询所有员工信息,并显示所属部门名称
要求:显示字段:员工id 部门 姓名
mysql> select p.id,d.name,p.name from personnel p,department d where p.did = d.id;
+----+-----------+-----------+
| id | name | name |
+----+-----------+-----------+
| 2 | 人事部 | 李玉刚 |
| 10 | 人事部 | 阿杜 |
| 4 | 市场部 | 刘欢 |
......
3. 连接join查询
左联:left join
右联:right join
内联:inner join
已知如下表所示,商品类别信息表(具有两层类别关系,通过pid表示,0表示一级类别)
mysql> select * from type;
+----+-----------+------+
| id | name | pid |
+----+-----------+------+
| 1 | 服装 | 0 |
| 2 | 数码 | 0 |
| 3 | 男装 | 1 |
| 4 | 手机 | 2 |
| 5 | 相机 | 2 |
| 6 | 电脑 | 2 |
| 7 | 女装 | 1 |
| 8 | 童装 | 1 |
| 9 | 食品 | 0 |
| 10 | 零食 | 9 |
| 11 | 特产 | 9 |
| 12 | 休闲装 | 1 |
+----+-----------+------+
12 rows in set (0.00 sec)
mysql> desc type;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| pid | int(10) unsigned | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
-- 查询二级类别信息,并关联出他们的父类别名称
mysql> select t1.id,t1.name,t2.name from type t1,type t2 where t1.pid!=0 and t1.pid=t2.id;
+----+-----------+--------+
| id | name | name |
+----+-----------+--------+
| 3 | 男装 | 服装 |
| 4 | 手机 | 数码 |
| 5 | 相机 | 数码 |
| 6 | 电脑 | 数码 |
| 7 | 女装 | 服装 |
| 8 | 童装 | 服装 |
| 10 | 零食 | 食品 |
| 11 | 特产 | 食品 |
| 12 | 休闲装 | 服装 |
+----+-----------+--------+
9 rows in set (0.01 sec)
--统计每个一级类别下都有多少个子类别。
mysql> select t1.id,t1.name,count(t2.id) from type t1,type t2 where t1.pid=0 and t1.id=t2.pid group by t1.id;
+----+--------+--------------+
| id | name | count(t2.id) |
+----+--------+--------------+
| 1 | 服装 | 4 |
| 2 | 数码 | 3 |
| 9 | 食品 | 2 |
+----+--------+--------------+
3 rows in set (0.00 sec)
MySQL的多表联查就讲到这里啦。还是那句话,记得关注我。那啥,我知道粉丝们已经看烦了这句话,但是我还是很想说啊,万一有人忘了关注我呢?哈哈哈......
mysql 多表联查_MySQL的多表联查相关推荐
- mysql添加表字段_mysql命令添加表字段
常用的通过mysql命令来更改表结构的一些sql语句,包括添加.删除.修改字段.调整字段顺序. 添加字段: alter table `user_movement_log` Add column Gat ...
- mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享
##状况描述 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决 ...
- mysql 不锁表备份_Mysql不锁表备份之Xtrabackup的备份与恢复
一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...
- mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)
在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...
- mysql多表删除_MySQL中多表删除方法
如果您是才接触MySQL数据库的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助. 1.从MyS ...
- mysql update 多表更新_MySQL UPDATE多表关联更新
MySQL 可以基于多表查询更新数据.对于多表的 UPDATE 操作需要慎重,建议在更新前,先使用 SELECT 语句查询验证更新的数据与自己期望的是否一致. 下面我们建两张表,一张表为 produc ...
- MySQL数据库应用 多表查询_mysql数据库-多表查询
今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: 数据库的创建 : create ...
- mysql 数据库分表查询_mysql数据库分表及实现
项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询书读变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈. 当出现这种情况时,我们可以考虑分表,即将单 ...
- 怎么修改mysql的表名称_mysql怎么修改表名?
本篇文章将和大家讲述如何快速修改mysql表名,有同样需要的朋友学习一下吧,希望你看后能有所帮助. mysql修改表名的方法: 具体步骤:打开cmd->输入"mysql -u root ...
- mysql怎么创建数据库创建表空间_mysql怎么创建表空间
mysql创建表空间的方法:[create tablespace 表空间 add datafile 保存路径;].如果要删除表空间,可以执行sql语句[DROP TABLESPACE tablespa ...
最新文章
- Retrofit源码研究
- 2019 ICPC Asia Nanjing Regional K.Triangle(求一个能将三角形分成两个面积相同的线段、计算几何)
- 最土团购系统数据结构数据字典二次开发宝典
- 以python入门教程新世界-50⾏python爬⾍代码, 带你正确打开知乎新世界!
- “网站漏洞”成电信诈骗帮凶 专家呼吁进行“立体防护”
- js操作frame详细解说,window.opener和window.parent的区别
- CG CTF WEB 文件包含
- [Python] 制作启动uiautomator2 的web版 uiautomatorviewer2 批处理启动
- [Unity] 播放 Generic Animation 导致无法移动的解决办法:在 Animator 中勾选 Apply Root Motion
- python画三维图-Python+matplotlib绘制三维图形5个精选案例
- 苹果mac专业文献管理软件:endnote x9
- 【大数据】Hadoop快速入门
- [ProblemSolving]ut下载磁盘负荷过重
- directx初第一卷
- 关于原型设计的工具——AXURE
- sas mysql乱码_在SAS中如何解决中文乱码问题
- 红米路由器ac2100怎样设置ipv6_红米路由器AC2100怎么用手机设置 | 192路由网
- 女性bmi计算器JAVA代码_简单的BMI计算器
- 云桌面及桌面虚拟化的功能
- 正版win7系统下载重装教程
热门文章
- mysql重设密码_MySQL之重设密码(忘记密码)讲解
- 单片机汇编语言:我的第一个汇编语言程序(汇编语言实现按键控制LED灯)
- iOS系统版本特性(7版本--14版本)
- 工程师姓什么很重要!别再叫我“ X工 ”。。
- 微信小程序的开发界面设计
- [新手]使用python爬取光明日报
- sso统一认证postMessage无感处理
- 荣耀鸿蒙电视深圳展示在何处,挑战智能电视市场 鸿蒙OS率先在荣耀智慧屏商用...
- vba得到经过自动筛选过的行数
- Auvidea J20板入门指南