详细聊聊关于Mysql联合查询的那些事儿


Posted in MySQL onOctober 24, 2021

联合查询之union

union可以合并两个以上 select语句查询出来的表,并消除表中的重复行。

其中,select语句需要拥有相同数量和相同数据类型的列。

1. 查询中国各省的ID以及省份名称

select ProID,ProName from T_Province

2. 湖南省所有地级市ID、名字

select CityID,CityName from T_City
where ProID = (
    select ProID from T_Province where ProName="湖南省"
);

3. 用union将他们合并

select ProID,ProName from T_Province
union
select CityID,CityName from T_City
where ProID = (
    select ProID from T_Province where ProName="湖南省"
);

这样就得到两个查询结果的并集了。

UNION 合并后的集合中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

联合查询之union all

select ProID,ProName from T_Province
union all
select CityID,CityName from T_City
where ProID = (
    select ProID from T_Province where ProName="湖南省"
);

当使用union all,不会消除重复行。

联合查询之inner join

1. 查询湖北省有多少地级市

不用联合查询:

select count(CityID) from T_City
where ProID = (select ProID from T_Province where ProName="湖北省")

通过ProID将两张表连接在一起

select ProName,CityName from(
    T_City join T_Province
    on T_City.ProID = T_Province.ProID
)
where ProName="湖北省"

2. 统计各省地级市的数量,输出省名、地级市数量

select T_City.ProID,ProName,count(CityID) as cc from(
    T_City join T_Province
    on T_City.ProID = T_Province.ProID
)
group by T_City.ProID
order by cc desc;

什么的select语句中要输出的ProID应该是T_City和T_Province中的一个,不然就会报错。

两个表之间需要有共同的(列名不一定相同)“语言”才能join。

可以给表起个别名,将T_City表的别名设为tc,将T_Province的别名设为tp。

select tc.ProID,ProName,count(CityID) as cc from(
    T_City tc join T_Province tp
    on T_City.ProID = T_Province.ProID
)
group by tc.ProID
order by cc desc;

3. 查询拥有20个以上区县的城市,输出城市名,区县数量

select CityName,count(DisName) disCount from (
    T_City tc join T_District td
    on tc.CityID = td.CityID
)
group by CityName
having disCount > 20;

联合查询之三表联合

1. 区县最多的3个城市是哪个省的哪个市,查询结果包括省名,市名,区县数量

select tp.ProName,tcd.CityName,tcd.ci from
(
select ProID,CityName,count(ID) ci from(T_City tc join T_District td on tc.CityID = td.CityID) 
    
group by tc.CityID
order by ci desc
limit 3
)tcd
join T_Province tp on tcd.ProID = tp.ProID;

联合查询之left join&right join

内连接是基于左右两表公共的部分

左连接是基于左右两表公共的部分加上左表特有的部分

右连接是基于左右两表公共的部分加上右表特有的部分

查询所有省份和它的城市信息

select * from(
T_Province tp join T_City tc
on tp.ProID = tc.ProID
);

查询所有省份和它的城市信息和没有城市的省份信息

select * from(
T_Province tp left join T_City tc
on tp.ProID = tc.ProID
);

查询所有省份和它的城市信息和没有省份的城市信息

select * from(
T_Province tp right join T_City tc
on tp.ProID = tc.ProID
);

总结

到此这篇关于Mysql联合查询的文章就介绍到这了,更多相关Mysql联合查询内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
Mysql官方性能测试工具mysqlslap的使用简介
May 21 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
Aug 02 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
关于MySQL中的 like操作符详情
Nov 17 MySQL
如何避免mysql启动时错误及sock文件作用分析
Jan 22 MySQL
解析MySQL索引的作用
Mar 03 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
MYSQL常用函数介绍
May 05 MySQL
MySQL优化之慢日志查询
Jun 10 MySQL
mysql事务对效率的影响分析总结
Oct 24 #MySQL
mysql事务隔离级别详情
mysql主从复制的实现步骤
记一次Mysql不走日期字段索引的原因小结
Oct 24 #MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 #MySQL
MySQL七种JOIN类型小结
MySQL中的引号和反引号的区别与用法详解
You might like
php递归法读取目录及文件的方法
2015/01/30 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
vuex的使用步骤
2021/01/06 Vue.js
python的迭代器与生成器实例详解
2014/07/16 Python
python网络编程之文件下载实例分析
2015/05/20 Python
python中import学习备忘笔记
2017/01/24 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
求职信格式范本
2013/11/15 职场文书
电子信息专业自荐书
2014/02/04 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2015年双拥工作总结
2015/04/08 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
民事申诉状范本
2015/05/20 职场文书
个人借条范本
2015/05/25 职场文书
办公室日常管理制度
2015/08/04 职场文书
学校教学管理制度
2015/08/06 职场文书