最近在MySQL上做了点工作,发现很多人都在询问MySQL嵌套查询的问题,许多人都觉得MySQL不支持嵌套查询,其实MySQl从4.11版后已经完全支持嵌套查询了,那么下面我举些简单的嵌套查询的例子吧(源程序来自MySQL User Manual):

1. SELECT语句的子查询:

语法:     SELECT ... FROM (subquery) AS name ...

先创建一个表:

CREATE TABLE t1 (s1 INT, s2 CHAR(5), s3 FLOAT);

INSERT INTO t1 VALUES (1,'1',1.0);

INSERT INTO t1 VALUES (2,'2',2.0);

我们就可以进行以下的嵌套查询了:

SELECT sb1,sb2,sb3

FROM (SELECT s1 AS sb1, s2 AS sb2, s3*2 AS sb3 FROM t1) AS sb

WHERE sb1 > 1;

结果是:2, '2', 4.0.

我们知道下面语句是不会得到正确结果的,因为对经过Group by排序的集合进行求均值是不能得到正确答案的:

SELECT AVG(SUM(column1)) FROM t1 GROUP BY column1

所以我们可以通过下面的嵌套查询实现同样的效果:

SELECT AVG(sum_column1)

FROM (SELECT SUM(column1) AS sum_column1

FROM t1 GROUP BY column1) AS t1;

2.行的子查询(Row Subquery):

看下面的例子:

SELECT * FROM t1 WHERE ROW(1,2) = (SELECT column1, column2 FROM t2);

这个查询是返回column1等于column2的结果行。Row函数中的1和2相当于构造参数。想必Blogjava上的同志对这些应该比较清楚,也不去详细介绍了。

3.使用Exist和Not Exist参数

这里的Exist和Not Exist用途及用法和在其他没有什么大的区别,我就简单举几个范例好了:

范例一:      SELECT DISTINCT store_type FROM Stores

WHERE EXISTS (SELECT * FROM Cities_Stores

WHERE Cities_Stores.store_type = Stores.store_type);

范例二:   SELECT DISTINCT store_type FROM Stores

WHERE NOT EXISTS (SELECT * FROM Cities_Stores

WHERE Cities_Stores.store_type = Stores.store_type);

范例三:  这个例子中嵌套使用了Not Exist语法,稍微注意一下:

SELECT DISTINCT store_type FROM Stores S1

WHERE NOT EXISTS (

SELECT * FROM Cities WHERE NOT EXISTS (

SELECT * FROM Cities_Stores

WHERE Cities_Stores.city = Cities.city

AND Cities_Stores.store_type = Stores.store_type));

4.条件关联关系查询:

解释起来麻烦,直接看例子吧:

SELECT column1 FROM t1 AS x

WHERE x.column1 = (SELECT column1 FROM t2 AS x

WHERE x.column1 = (SELECT column1 FROM t3

WHERE x.column2 = t3.column1));

跟其他数据库做法是一样的。

5.其他使用方法和注意:

除了上面这些还有很多很多,不过就不去细讲了,因为这些跟别的数据库差不多,只是为了给大家一个参考,提提就够了。

SELECT (SELECT s1 FROM t2) FROM t1;

SELECT (SELECT s2 FROM t1);

支持子查询的语法有:SELECT,INSERT,UPDATE,DELETE,SET和DO。

子查询可以使用任何普通查询中使用的关键词:如DINSTINCT,GROUP BY,LIMIT,ORDER BY,UNION,ALL,UNION ALL等。可以使用, <=, >=, =, <>运算符进行比较,也可以使用ANY ,IN和SOME进行集合的匹配。

转载请注明出处:陈朋奕 http://www.blogjava.net/chenpengyi

mysql 嵌套_MySQL的嵌套查询相关推荐

  1. mysql在线教程嵌套_MySQL update嵌套

    当我们想从MySQL中的表table1中取出id=5的列col1(例如: 博客当前访问量)中的数据d1, 并将table1的属性p1更新为d1+1的时候, 我们也 当我们想从MySQL中的表table ...

  2. php mysql 家谱_mysql家谱表查询某人所有后代

    我们经常会把一些树形的结构放在一张表里,例如家谱,菜单等.这种表最大的问题就是当我们需要查询某个记录的所有子记录时,很难用简单的sql搞定.我们可以专门写个过程来做这种事情,下面是我写的一个例子.fg ...

  3. MySQL充电_Mysql 充电站SQL查询1--171221--mysql-sql

    Mysql 充电站SQL查询1--171221--mysql-sql --当月至现在查询支付成功后未成功充电的情况 select c.a 失败数,c.b 总数,c.a1,c.cs 失败率,c.cc 成 ...

  4. MySQL、Spark SQL 嵌套查询(二层、三层、多层)

    MySQL.Spark SQL 嵌套查询(二层.三层.多层) 二层查询 select * from(select * from(select substring(``,1,3) from `big1` ...

  5. golang mysql多表查询_MySQL多表查询

    一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...

  6. Mysql 修改 复杂的汇总_MySQL数据分析:复杂查询

    本篇文章内容为;MySQL的复杂查询,针对工作中常见的sql操作,提出自己的意见. 主题为:视图.子查询(包括标量子查询.关联子查询) 首先,我们依旧先进入提问环节:如果我们需要经常性的某列数据进行汇 ...

  7. mysql子查询字符串位置_MySql基础-子查询

    一.子查询定义 定义: 子查询允许把一个查询嵌套在另一个查询当中. 子查询用()括起来 子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询. 子查询可以包含普通select可以包括的任 ...

  8. mysql数据库表子查询语句_MySQL使用子查询教程

    #MYSQL#这是我MyySQL教程的第四篇了,可能对于一些大神来说这些都是小儿科,但是我还是相信这些东西会对一些人有帮助的,本篇主要会介绍上面是子查询以及如何使用它们.大概会从,什么是子查询,利用子 ...

  9. mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例

    1.表与表之间的关系 一对一:用户表和身份信息表,用户表是主表 例如:男人表 .女人表create table man( mid int primary key auto_increment, mna ...

  10. mysql同步三张表如何用事务_MySQL 多表查询与事务的操作

    表连接查询 什么是多表查询 # 数据准备 # 多表查询的作用 * 比如:我们想查询孙悟空的名字和他所在的部门的名字,则需要使用多表查询 # 如果一条 SQL 语句查询多张表,因为查询结果在多张不同的表 ...

最新文章

  1. zookeeper快速入门——简介
  2. 【循序渐进学Python】1. Python基础知识
  3. java中的强制类型转换:int和byte
  4. Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍
  5. linux 正则查找email_Linux 正则表达式详解
  6. C#/WPF程序开机自动启动
  7. windows 搜索文件
  8. pandas 提取某几列_用Pandas做数据清洗,我一般都这么干……
  9. 和大家分享一款使用PHP+MYSQL搭建在线教育系统源码
  10. HTML5如何实现网页消息通知提醒
  11. CTA-敏感行为-复制到剪切板/从剪切板粘贴
  12. python微信投票该用户被锁定、恢复时间_因投票微信账号出现异常被封禁7天的解封方法讲解...
  13. 圆锥体积公式的推导过程(Formula Derivation of Cone's volume)
  14. 拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程
  15. 人工智能入门第一课:手写字体识别及可视化项目(手写画板)(mnist)
  16. win10关机后cpu风扇还在转_解决win10关机后风扇继续转方法
  17. 鸿蒙os电脑界面,鸿蒙OS平板UI界面曝光:双Dock栏设计+超级终端互联功能
  18. ggplot2图形排版:patchwork包简单入门
  19. 拿高分文章,还得是Synaptic Systems 微管蛋白抗体
  20. 数字音视频编解码技术标准工作组会员单位

热门文章

  1. 无人机设计过程中的计算和假设
  2. RestTemplate获取HTTP状态码
  3. 如何自动加载scratch3.0的页面上实现自动加载原有的作品
  4. 360手机助手关于签名校验的分析
  5. django清空数据库
  6. 第一章 信息化与信息系统习题
  7. Java docx4j 操作word 2.1
  8. 在html页面中加入矢量图,在html中引用矢量图
  9. python 生意参谋_电商 Python 抓取 生意参谋-访客数据
  10. 计算机office2010excel试题,将计算机二级Office2010Excel试题中会出现的所有公式汇总...