• 山西新闻网特约摄影师名单&山西视觉志 2019-02-05
  • 广州旅游为何爆发出强大且持续的吸引力 2019-02-05
  • 今天看啥
      热点:

        北京赛车pk10历史记录 www.zwahn.com

        数据库知识学习之SQL语句多表联合查询,sql语句


        @概述

        @union

        union的作用是将【查询结果字段数相同的两个表】进行强制合并

        # 查询名字带东的省和名字带东的市,将结果合并为一张表
        select ProName as name from t_province where ProName like '%东%'
        union
        select CityName from t_city where cityname like '%东%';

        这里写图片描述

        @join

        两张不同的表可能会有字段名和字段值都相等的部分,根据这部分,可以将两张表联合起来进行查询: 使用join或inner join联合起来的两张表,查询结果为两表交集的部分;

        看一个例子,首先从城市表中查询到每个省的地级市数量:

        # 查询各省地级市数量,取前十名
        select ProID,count(CityID) cities
        from t_city GROUP BY ProID
        order by cities DESC
        LIMIT 10;

        这里写图片描述

        将这张表起一个别名top10,联合省份表(共有34条数据),我们来做一个联合查询:

        # 使用join联合省份表(tp)和top10进行查询
        # 联合的条件是tp.ProID = top10.ProID
        # 查询结果是左右两表交集的部分
        select tp.ProName,top10.cities
        from t_province tp join (
          select ProID,count(CityID) cities from t_city GROUP BY ProID order by cities DESC LIMIT 10
        ) top10
        on tp.ProID = top10.ProID;

        这里写图片描述

        使用left join联合起来的两张表,查询结果为左表的全部内容+两表交集的部分:

        # 使用left join联合省份表(tp)和top10进行查询
        # 联合的条件是tp.ProID = top10.ProID
        # 查询结果是左表全部 + 两表交集的部分
        select tp.ProName,top10.cities
        from t_province tp left join (
          select ProID,count(CityID) cities from t_city GROUP BY ProID order by cities DESC LIMIT 10
        ) top10
        on tp.ProID = top10.ProID;

        查询结果:省份表的全部 + 两表交集的部分

        使用right join联合起来的两张表,查询结果为右表的全部内容+两表交集的部分:

        原理相同,大家可以自行将左右表位置互换进行测试,这里就不再演示了;

        北京赛车pk10历史记录 www.zwahn.comtrue//www.zwahn.com/Sql_Server/1316324.htmlTechArticle数据库知识学习之SQL语句多表联合查询,sql语句 @概述 @union union的作用是将【查询结果字段数相同的两个表】进行强制合并 # 查询名字带东...

        相关文章

        相关搜索: 数据库 SQL 多表 联合查询

        帮客评论

        视觉看点
      • 山西新闻网特约摄影师名单&山西视觉志 2019-02-05
      • 广州旅游为何爆发出强大且持续的吸引力 2019-02-05