千家信息网

什么是Mysql联合查询

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要讲解了"什么是Mysql联合查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"什么是Mysql联合查询"吧!目录联合查询之union1.
千家信息网最后更新 2025年11月09日什么是Mysql联合查询

这篇文章主要讲解了"什么是Mysql联合查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"什么是Mysql联合查询"吧!

目录
  • 联合查询之union

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

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

    • 3. 用union将他们合并

  • 联合查询之union all

    • 联合查询之inner join

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

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

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

    • 联合查询之三表联合

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

    • 联合查询之left join&right join

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

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

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


    联合查询之union

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

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

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

    select ProID,ProName from T_Province

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

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

    3. 用union将他们合并

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

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

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

    联合查询之union all

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

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

    联合查询之inner join

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

    不用联合查询:

    select count(CityID) from T_Citywhere 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.ProIDorder 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.ProIDorder 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 CityNamehaving 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.CityIDorder by ci desclimit 3)tcdjoin T_Province tp on tcd.ProID = tp.ProID;

    联合查询之left join&right join

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

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

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

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

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

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

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

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

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

    感谢各位的阅读,以上就是"什么是Mysql联合查询"的内容了,经过本文的学习后,相信大家对什么是Mysql联合查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

    查询 联合 城市 省份 信息 数量 区县 地级 地级市 部分 湖南 湖南省 输出 语句 湖北 湖北省 相同 两个 结果 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器不能加油怎么办 服务器电脑的ip 玩绝地求生出现服务器满载 惠州西餐厅自助点餐软件开发 媒体服务器耗电超级严重怎么解 巨杉数据库到底如何 网络安全大赛设计题目 金山区第三方软件开发批发价格 b站的服务器有不间断电源 学习网络技术学多久 软件开发 云计算网页版本 苏州江苏高性能服务器出售 吴家强数据库 网络安全开放 光模块软件开发工程师 数据库如何创建视图并显示字段名 理正导入数据库是空的6 一台服务器几个2404端口 尘埃拉力赛2无法连接服务器 网络安全生产红头文件 天津网络安全宣传活动 易霖金桥网络技术有限责任公司 数据库适合什么行业 服务器如何同时运行三个系统 县 网络安全专项检查 通知 加强校园网络安全的资料 网络安全专业需要多少分 新生网络安全答题答案 清代知县数据库 荆州讯腾软件开发有限公司
    0