MySQL数据库8 -子查询,联合查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库8 -子查询,联合查询相关的知识,希望对你有一定的参考价值。

一 使用IN关键字的子查询

问题: 查询游戏类型是‘棋牌类‘ 的游戏的分数信息

   - 游戏分数表中并未包含游戏类型信息

   思路一:采用链接查询

   思路二: 分两步进行,首先找到所以‘棋牌类‘游戏的编号,再以这一组编号为查询依据完成查询

   select * from scores where gno in (select gno from games where gtype =‘棋牌‘)

例:查询没有参与5号游戏的玩家QQ

 select user_qq from users where user_qq not in (select user_qq from scores where gno=5)

 

二 使用exists 关键字的子查询

例:如果存在昵称为‘孙悟空’,则查询分数表中的数据

  select * from scores where exists (select * from users user_name =‘孙悟空‘)

 

三 联合查询

 select _statement union[all] select_statement [union[all] select_statement][...n]

作用与特点:可以把多条查询语句所产生的结果集纵向连接为一体

                 有ALL关键字可以显示全部数据(即重复的也显示出来)

                 列的数量与类型都要兼容

 select user_name from users 

 union

 select gname from games

例:查询玩家表中所有女性玩家和生日为空的玩家

select * from users where user_sex=‘女‘

union

select * from users where user_birthday is null

<<=====>> select * from users where user_sex=‘女‘ or select * from users where user_birthday is null

例:查询qq号是‘12302’的玩家所有分数并计算出总分数和平均分数,并显示到同一结果集中

select user_qq,gno,score from scores where user_qq=‘12302‘ union all select ‘总分‘,‘ ‘,sum(score) from scores union all select ‘平均分‘,‘ ‘,avg(score) from scores where user_qq=‘12302‘

 

以上是关于MySQL数据库8 -子查询,联合查询的主要内容,如果未能解决你的问题,请参考以下文章

SQLite 3.8.8 发布,数据库服务器

人工智能大数据预测昨日数据11中8~今日5场足球~数据已更新最高信心指数8.5~

8.数据库编程

8位16位32位单片机区别

数据结构—— 树:堆

8 -- 深入使用Spring -- 8...1 Spring提供的DAO支持