using

概念

using用来指定连接字段

using的结果也会对公共字段进行优化,优化的规则和自然连接是一样的

MariaDB [sel]> select * from grades inner join resume using(name);

+-------+---------+------+----+-----------+

| name | chinese | math | id | skill |

+-------+---------+------+----+-----------+

| Sunny | 93 | 96 | 1 | php |

| Jerry | 97 | 91 | 3 | php,mysql |

+-------+---------+------+----+-----------+

# `2 rows in set (0.001 sec)`

MySQL练习题

显示地区及每个地区参加笔试的人数,并按人数降序排列

思路分解

select 查询字段

from 多表查询 左外连接

using 指定连接字段

group by 分组查询结果

order by 降序排列

-- 第一步: 显示地区及每个地区参加笔试的人数

mysql> select stuaddress,count(writtenexam) from stuinfo left join stumarks using(stuno) group by stuaddress;

+------------+--------------------+

| stuaddress | count(writtenexam) |

+------------+--------------------+

| 上海 | 1 |

| 北京 | 2 |

| 天津 | 2 |

| 河北 | 0 |

| 河南 | 0 |

+------------+--------------------+

# `5 rows in set (0.00 sec)`

-- 第二步:将结果降序排列

mysql> select stuaddress,count(writtenexam) c from stuinfo left join stumarks using(stuno) group by stuaddress order by c desc;

+------------+---+

| stuaddress | c |

+------------+---+

| 北京 | 2 |

| 天津 | 2 |

| 上海 | 1 |

| 河北 | 0 |

| 河南 | 0 |

+------------+---+

# `5 rows in set (0.00 sec)`

显示有学生参加考试的地区

思路解析

select 选择查询字段

from 多表查询 左外连接

using 指定连接字段

group by 分组查询显示

having 条件筛选

-- having筛选

mysql> select stuaddress,count(writtenexam) c from stuinfo left join stumarks using(stuno) group by stuaddress having c>0;

+------------+---+

| stuaddress | c |

+------------+---+

| 上海 | 1 |

| 北京 | 2 |

| 天津 | 2 |

+------------+---+

# `3 rows in set (0.00 sec)`

思路解析

select 选择查询字段

from 多表查询 右外连接

using 指定连接字段

distinct 去重复

having 条件筛选

is not null 去空

-- 表连接实现

-- 第一步:右连接获取有成绩的地区

mysql> select stuaddress from stuinfo right join stumarks using(stuno);

+------------+

| stuaddress |

+------------+

| 北京 |

| 上海 |

| 天津 |

| 北京 |

| 天津 |

| NULL |

+------------+

# `6 rows in set (0.00 sec)`

-- 第二步:去重复

mysql> select distinct stuaddress from stuinfo right join stumarks using(stuno);

+------------+

| stuaddress |

+------------+

| 北京 |

| 上海 |

| 天津 |

| NULL |

+------------+

# `4 rows in set (0.00 sec)`

-- 去除null

mysql> select distinct stuaddress from stuinfo right join stumarks using(stuno) having stuaddress is not null;

+------------+

| stuaddress |

+------------+

| 北京 |

| 上海 |

| 天津 |

+------------+

# `3 rows in set (0.00 sec)`

显示男生和女生的人数

方法一:分组查询

select 查询字段

from 查询表

group by 分组查询显示

mysql> select stusex,count(*) from stuinfo group by stusex;

+--------+----------+

| stusex | count(*) |

+--------+----------+

| 女 | 3 |

| 男 | 4 |

+--------+----------+

# `2 rows in set (0.00 sec)`

方法二:union

select 查询字段

from 查询表

where 条件筛选

union 联合查询

mysql> select stusex,count(*) from stuinfo where stusex='男' union select stusex,count(*) from stuinfo where stusex='女';

+--------+----------+

| stusex | count(*) |

+--------+----------+

| 男 | 4 |

| 女 | 3 |

+--------+----------+

# `2 rows in set (0.00 sec)`

方法三:直接写条件

select 聚合函数查询

from 查询表

mysql> select sum(stusex='男') 男,sum(stusex='女') 女 from stuinfo;

+------+------+

| 男 | 女 |

+------+------+

| 4 | 3 |

+------+------+

# `1 row in set (0.00 sec)`

显示每个地区男生、女生、总人数

思路解析

select 选择字段 聚合函数

from 选择表

group by 分组查询显示

mysql> select stuaddress,count(*) 总人数,sum(stusex='男') 男,sum(stusex='女') 女 from stuinfo group by stuaddress;

+------------+--------+------+------+

| stuaddress | 总人数 | 男 | 女 |

+------------+--------+------+------+

| 上海 | 1 | 1 | 0 |

| 北京 | 2 | 1 | 1 |

| 天津 | 2 | 2 | 0 |

| 河北 | 1 | 0 | 1 |

| 河南 | 1 | 0 | 1 |

+------------+--------+------+------+

# `5 rows in set (0.00 sec)`

标签:stusex,mysql,查询,stuaddress,MySQL,using,之多表,select

来源: https://www.cnblogs.com/SharkJiao/p/14137851.html

mysql useing查询,MySQL数据库之多表查询using优化与案例相关推荐

  1. mysql 连表查询_mysql数据库之联表查询

    表准备: 这次我们用到5张表: class表: student表: score表: course表: teacher表: 表结构模型: 我们针对以下需求分析联表查询: 1.查询所有的课程的名称以及对应 ...

  2. 数据库mysql自然连接_MySQL数据库之多表查询natural join自然连接

    自然连接 概念 自动判断条件连接,判断的条件是依据同名字段 小结 表连接是通过同名字段来连接的 如果没有同名字段就返回笛卡尔积 同名的连接字段只显示一个,并且将该字段放在最前面 自然内连接(natur ...

  3. mysql optimize原理_MySQL数据库入门:表的Optimize 优化

    一.optimize优化原理 对mysql进行大量增删改操作,磁盘上的空间没有被立即收回(数据空间.索引位),而是等待新的数据来填充空缺 -- 这些空间可以被后续的insert操作利用,但如果记录是变 ...

  4. mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息

    前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...

  5. mysql数据库实验3查询_MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录任务三 数据库的单表查询设计[实训目的与要求][实训原理][实训步骤]一.简单查询二.按条件查询1.比较大小查询2.带in关键字的查询(确定集合)3.带BETWE ...

  6. mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

  7. Mysql数据库的单表查询

    我们在使用Mysql数据库存储数据时,对数据的查询方法是至关重要的,此博客主要介绍Mysql数据库的查询数据方法. 单表查询 单表查询就是我们仅对一个表进行查询,我们可以首先创建一个名为table的表 ...

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

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

  9. MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录 任务三 数据库的单表查询设计 [实训目的与要求] [实训原理] [实训步骤] 一.简单查询 二.按条件查询 1.比较大小查询 2.带in关键字的查询(确定集合) ...

  10. mysql数据库查询关键字级别_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

最新文章

  1. 深夜,我偷听到程序员要对session下手……
  2. 《转》Java Process应用之惑
  3. mysql 同步备份数据库
  4. Oracle实例和服务知识点
  5. 如何正确执行碎片整理或在群集共享卷(CSV)上使用CHKDSK命令
  6. pta 习题集 5-2 找出不是两个数组共有的元素 (5分)
  7. QString string int double char 相互转化
  8. TensorFlow 2.0和PyTorch谁更好?大牛们争了好几天
  9. python输出语句格式 f_Python基础之输出格式和If判断
  10. 【专题】CSDN下载频道4月热门资源top100汇总
  11. vivado2021.1安装
  12. 高数篇(三)-- 最小二乘法、正则化
  13. Git和Github的基本操作
  14. WIN10REALTEL高清音频管理器如何调音?调音无效怎么办?
  15. Qt应用程序嵌入浏览器的常用方法
  16. CloudFlare Workers 设置使用自定义域名
  17. 这样的牛皮凉席清水席要慎买!!!
  18. 网页上播放微信录音amr文件方案
  19. JDK、JRE、eclipse安装教程
  20. SAP BPC-通过Input Schedul输入与DM运行Logic计算两种情况下的LEQ/INC科目的正负号问题...

热门文章

  1. layui表格更改一列数据_layui数据表格隐藏列的方法介绍
  2. Winform控件拖动
  3. [jzoj NOIP2018模拟 11.01]
  4. javascript本地缓存方案-- 存储对象和设置过期时间
  5. 学习windows编程 day6 之模拟记事本
  6. python下各种包的安装
  7. 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
  8. Photon——Setup and Config 设置与配置
  9. 【数据结构与算法】之深入解析“股票平滑下跌阶段的数目”的求解思路与算法示例
  10. App设计灵感之十二组精美的AR现实导航App设计案例