一 使用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 -子查询,联合查询的更多相关文章

  1. mysql学习之路_联合查询与子查询

    联合查询 联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加). 语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关). Select ...

  2. MySQL的查询,子查询,联结查询,联合查询

    MySQL的查询,子查询,联结查询,联合查询 一.mysql查询的五种子句where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 二 ...

  3. MySQL数据库 —子查询,联合查询

    一 使用IN关键字的子查询 1.查询游戏类型是'棋牌类' 的游戏的分数信息 游戏分数表中并未包含游戏类型信息 思路一:采用链接查询 思路二: 分两步进行,首先找到所以'棋牌类'游戏的编号,再以这一组编 ...

  4. MySql数据库之子查询和高级应用

    MySql数据库中的子查询: 子查询:在一条select查询语句中嵌套另一条select语句,其主要作用是充当查询条件或确定数据源. 代码案例如下: 例1. 查询大于平均年龄的学生: select * ...

  5. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  6. mysql数据库优化之开启慢查询日志

    进入mysql数据库,使用 show variables like 'slow_query_log'; 查看是否开启了慢查询日志 value值为OFF,则慢查询日志没有开启,在开启慢查询日志之前,我们 ...

  7. python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作

    1.环境数据准备: python3环境.pymysql模块 mysql数据库:本次代码中用到的数据库为本地的testdb数据库,user表(表字段比较简单,只有主键id,手机号mobile,密码pas ...

  8. 你了解MySQL中的多表联合查询吗?

    前言: 多表联合查询,其实就是我们MySQL中的join语句,经常会看到有人说join非常影响性能,不建议使用,你知道这是为什么呢?我们究竟可不可以用呢? 测试数据: CREATE TABLE `t2 ...

  9. Python与Mysql 数据库的连接,以及查询。

    python与mysql数据库的连接: pymysql是python中对数据库的连接模块:因此应当首先安装pymysql数据库模块. 执行pip install pymysql 命令. 然后在pyth ...

随机推荐

  1. text-transform属性

    text-transform -- 定义文本的大小写状态,此属性对中文无意义 取值:capitalize | uppercase | lowercase | none | inherit capita ...

  2. Bug总结流程

    小明入职已有两年,期间测试能力已不知不觉成长许多,得到了Leader大熊的高度认可.回首这两年间,小明对"Bug总结流程"印象最为深刻,他对这个流程的认识在不断改变着:从最初的好奇 ...

  3. B-树,B+树,B*树详解

    B-树 B-树是一种多路搜索树(并不一定是二叉的) 1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树(或B-树.B_树). 一棵m阶B树(b ...

  4. OpenBSD之开篇

    对BSD有特殊的情节,早在大学的时候最初迷恋FreeBSD,还记得第一个折腾的版本是5.x,后来组件转到折腾Linux,但那份情节还是在心底,再加上越发觉得Linux的一盘散沙和BSD的完整性形成鲜明 ...

  5. SYSDBA身份登陆时可以修改其他用户的密码

    在以SYSDBA身份登陆时可以修改其他用户的密码,比如:SQL> alter user user01 identified by user10;用户已更改.这个是把USER01用户密码修改为US ...

  6. MySQL exists的用法介绍

    有一个查询如下: 1 SELECT c.CustomerId, CompanyName   2 FROM Customers c   3 WHERE EXISTS(   4     SELECT Or ...

  7. FastReport4.6 组件安装

    要完整版不是官方版的试用版.下面包括有的文件 安装前请册除原有的FR控件. 1. "Tools|Environmet options..."中的"Library" ...

  8. 1171. Lost in Space

    http://acm.timus.ru/problem.aspx?space=1&num=1171 一天的时间,WA了N遍,居然是因为数组开小了呀,我勒个去!鄙视自己...... 我是从第 1 ...

  9. Cannot send session cache limiter Cannot modify header information

    当php报出  Cannot send session cache limiter 或Cannot modify header information   的错误时   其理论上是因为php代码以前有 ...

  10. RegExp

    var str = "1a1b1c";var reg = new RegExp("1(.)", "g");alert(reg.test(st ...