美文网首页
MySQL 联合查询

MySQL 联合查询

作者: 村东头老骥 | 来源:发表于2019-11-12 12:40 被阅读0次

    MySQL 联合查询

    概念 : 将多个查询结果放置到一个结果集的方法

    • union 去除重复行
    • union all 保留重复行
    select * from studio where cl_id=1     -- 查询学生表中的班级编号的为1的学生
        union all   -- 保留重复行
    select * from studio where ho_id=1     -- 查询宿舍编号为1的学生   
        union all
    select * from studio where st_age>=30  -- 查询学生年龄大于30的学生
    
    -- 返回结果
    +-------+----------+--------+--------+------+--------------+-------+-------+----------------------------------+
    | st_id | st_name  | st_sex | st_age | z_id | st_tel       | cl_id | ho_id | st_remark                        |
    +-------+----------+--------+--------+------+--------------+-------+-------+----------------------------------+
    |     5 | 刘小琴   |      0 |     18 |    9 | 1383838438   |     1 |     1 | 无语                             |
    |     9 | 陈小春   |      1 |     28 |    8 | 1383838438   |     1 |     1 | 不爱说话,有忧郁症               |
    |     3 | 陆小凤   |      1 |     65 |    7 | 028-90909501 |     3 |     1 | 除了游戏,基本上是没有什么特长了 |
    |     5 | 刘小琴   |      0 |     18 |    9 | 1383838438   |     1 |     1 | 无语                             |
    |     9 | 陈小春   |      1 |     28 |    8 | 1383838438   |     1 |     1 | 不爱说话,有忧郁症               |
    |     2 | 林黛玉   |      0 |     45 |    8 | 13557571240  |     2 |     2 | 光晓得谈恋爱                     |
    |     3 | 陆小凤   |      1 |     65 |    7 | 028-90909501 |     3 |     1 | 除了游戏,基本上是没有什么特长了 |
    |     4 | 西门吹水 |      1 |     67 |    9 | 1383838438   |     4 |     4 | 果然是个灌水狂人                 |
    |     6 | 黄平     |      1 |     31 |   12 | 1383838438   |     2 |     4 | 学习认真,就是不太玩笑           |
    +-------+----------+--------+--------+------+--------------+-------+-------+----------------------------------+
    
    

    注意事项

    1. 多个结果集的列数量一定要是相同的。
    2. 多个结果集中对应的列的数据类型必须是可以自动转换,比如tinyint类型可以隐式转换为int类型

    查询不同表的列数据返回同一个结果集

    select st_name,st_sex,'学生' as '角色' from studio
    union
    select te_name , te_sex,'教师' as '角色' from teacher
    order by '角色'
    
    -- 输出结果
    +----------+--------+------+
    | st_name  | st_sex | 角色 |
    +----------+--------+------+
    | 林黛玉   |      0 | 学生 |
    | 陆小凤   |      1 | 学生 |
    | 西门吹水 |      1 | 学生 |
    | 刘小琴   |      0 | 学生 |
    | 黄平     |      1 | 学生 |
    | 陈小春   |      1 | 学生 |
    | 陈涛     |      1 | 教师 |
    | 付贵     |      1 | 教师 |
    | 佳伦     |      1 | 教师 |
    | 谌燕     |      0 | 教师 |
    | 李华全   |      1 | 教师 |
    +----------+--------+------+
    

    相关文章

      网友评论

          本文标题:MySQL 联合查询

          本文链接:https://www.haomeiwen.com/subject/mgvfictx.html