今天是周二,我们一起来研究下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的多表联查相关推荐

  1. mysql添加表字段_mysql命令添加表字段

    常用的通过mysql命令来更改表结构的一些sql语句,包括添加.删除.修改字段.调整字段顺序. 添加字段: alter table `user_movement_log` Add column Gat ...

  2. mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享

    ##状况描述 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决 ...

  3. mysql 不锁表备份_Mysql不锁表备份之Xtrabackup的备份与恢复

    一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...

  4. mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  5. mysql多表删除_MySQL中多表删除方法

    如果您是才接触MySQL数据库的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助. 1.从MyS ...

  6. mysql update 多表更新_MySQL UPDATE多表关联更新

    MySQL 可以基于多表查询更新数据.对于多表的 UPDATE 操作需要慎重,建议在更新前,先使用 SELECT 语句查询验证更新的数据与自己期望的是否一致. 下面我们建两张表,一张表为 produc ...

  7. MySQL数据库应用 多表查询_mysql数据库-多表查询

    今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: ​ 数据库的创建 : create ...

  8. mysql 数据库分表查询_mysql数据库分表及实现

    项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询书读变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈. 当出现这种情况时,我们可以考虑分表,即将单 ...

  9. 怎么修改mysql的表名称_mysql怎么修改表名?

    本篇文章将和大家讲述如何快速修改mysql表名,有同样需要的朋友学习一下吧,希望你看后能有所帮助. mysql修改表名的方法: 具体步骤:打开cmd->输入"mysql -u root ...

  10. mysql怎么创建数据库创建表空间_mysql怎么创建表空间

    mysql创建表空间的方法:[create tablespace 表空间 add datafile 保存路径;].如果要删除表空间,可以执行sql语句[DROP TABLESPACE tablespa ...

最新文章

  1. Retrofit源码研究
  2. 2019 ICPC Asia Nanjing Regional K.Triangle(求一个能将三角形分成两个面积相同的线段、计算几何)
  3. 最土团购系统数据结构数据字典二次开发宝典
  4. 以python入门教程新世界-50⾏python爬⾍代码, 带你正确打开知乎新世界!
  5. “网站漏洞”成电信诈骗帮凶 专家呼吁进行“立体防护”
  6. js操作frame详细解说,window.opener和window.parent的区别
  7. CG CTF WEB 文件包含
  8. [Python] 制作启动uiautomator2 的web版 uiautomatorviewer2 批处理启动
  9. [Unity] 播放 Generic Animation 导致无法移动的解决办法:在 Animator 中勾选 Apply Root Motion
  10. python画三维图-Python+matplotlib绘制三维图形5个精选案例
  11. 苹果mac专业文献管理软件:endnote x9
  12. 【大数据】Hadoop快速入门
  13. [ProblemSolving]ut下载磁盘负荷过重
  14. directx初第一卷
  15. 关于原型设计的工具——AXURE
  16. sas mysql乱码_在SAS中如何解决中文乱码问题
  17. 红米路由器ac2100怎样设置ipv6_红米路由器AC2100怎么用手机设置 | 192路由网
  18. 女性bmi计算器JAVA代码_简单的BMI计算器
  19. 云桌面及桌面虚拟化的功能
  20. 正版win7系统下载重装教程

热门文章

  1. mysql重设密码_MySQL之重设密码(忘记密码)讲解
  2. 单片机汇编语言:我的第一个汇编语言程序(汇编语言实现按键控制LED灯)
  3. iOS系统版本特性(7版本--14版本)
  4. 工程师姓什么很重要!别再叫我“ X工 ”。。
  5. 微信小程序的开发界面设计
  6. [新手]使用python爬取光明日报
  7. sso统一认证postMessage无感处理
  8. 荣耀鸿蒙电视深圳展示在何处,挑战智能电视市场 鸿蒙OS率先在荣耀智慧屏商用...
  9. vba得到经过自动筛选过的行数
  10. Auvidea J20板入门指南