详细聊聊关于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表的增删改查基础教程
Apr 07 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
超详细教你怎么升级Mysql的版本
May 19 MySQL
带你学习MySQL执行计划
May 31 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL数据库必备之条件查询语句
Oct 15 MySQL
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
mysql查找连续出现n次以上的数字
May 11 MySQL
MySQL数据库配置信息查看与修改方法详解
Jun 25 MySQL
mysql事务对效率的影响分析总结
Oct 24 #MySQL
mysql事务隔离级别详情
mysql主从复制的实现步骤
记一次Mysql不走日期字段索引的原因小结
Oct 24 #MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 #MySQL
MySQL七种JOIN类型小结
MySQL中的引号和反引号的区别与用法详解
You might like
php 字符串替换的方法
2012/01/10 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
通过实例解析python and和or使用方法
2020/11/14 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
工商管理毕业生推荐信
2013/12/24 职场文书
迎国庆演讲稿
2014/09/15 职场文书
个人工作年终总结
2015/03/09 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
结婚司仪主持词
2015/06/29 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript