mysql 嵌套_MySQL的嵌套查询
最近在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的嵌套查询相关推荐
- mysql在线教程嵌套_MySQL update嵌套
当我们想从MySQL中的表table1中取出id=5的列col1(例如: 博客当前访问量)中的数据d1, 并将table1的属性p1更新为d1+1的时候, 我们也 当我们想从MySQL中的表table ...
- php mysql 家谱_mysql家谱表查询某人所有后代
我们经常会把一些树形的结构放在一张表里,例如家谱,菜单等.这种表最大的问题就是当我们需要查询某个记录的所有子记录时,很难用简单的sql搞定.我们可以专门写个过程来做这种事情,下面是我写的一个例子.fg ...
- MySQL充电_Mysql 充电站SQL查询1--171221--mysql-sql
Mysql 充电站SQL查询1--171221--mysql-sql --当月至现在查询支付成功后未成功充电的情况 select c.a 失败数,c.b 总数,c.a1,c.cs 失败率,c.cc 成 ...
- MySQL、Spark SQL 嵌套查询(二层、三层、多层)
MySQL.Spark SQL 嵌套查询(二层.三层.多层) 二层查询 select * from(select * from(select substring(``,1,3) from `big1` ...
- golang mysql多表查询_MySQL多表查询
一 多表连接查询 #重点:外链接语法 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段= 表2.字段; #建表 create table de ...
- Mysql 修改 复杂的汇总_MySQL数据分析:复杂查询
本篇文章内容为;MySQL的复杂查询,针对工作中常见的sql操作,提出自己的意见. 主题为:视图.子查询(包括标量子查询.关联子查询) 首先,我们依旧先进入提问环节:如果我们需要经常性的某列数据进行汇 ...
- mysql子查询字符串位置_MySql基础-子查询
一.子查询定义 定义: 子查询允许把一个查询嵌套在另一个查询当中. 子查询用()括起来 子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询. 子查询可以包含普通select可以包括的任 ...
- mysql数据库表子查询语句_MySQL使用子查询教程
#MYSQL#这是我MyySQL教程的第四篇了,可能对于一些大神来说这些都是小儿科,但是我还是相信这些东西会对一些人有帮助的,本篇主要会介绍上面是子查询以及如何使用它们.大概会从,什么是子查询,利用子 ...
- mysql多表联合查询事例_MySQL——多表查询详细介绍以及实例
1.表与表之间的关系 一对一:用户表和身份信息表,用户表是主表 例如:男人表 .女人表create table man( mid int primary key auto_increment, mna ...
- mysql同步三张表如何用事务_MySQL 多表查询与事务的操作
表连接查询 什么是多表查询 # 数据准备 # 多表查询的作用 * 比如:我们想查询孙悟空的名字和他所在的部门的名字,则需要使用多表查询 # 如果一条 SQL 语句查询多张表,因为查询结果在多张不同的表 ...
最新文章
- zookeeper快速入门——简介
- 【循序渐进学Python】1. Python基础知识
- java中的强制类型转换:int和byte
- Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍
- linux 正则查找email_Linux 正则表达式详解
- C#/WPF程序开机自动启动
- windows 搜索文件
- pandas 提取某几列_用Pandas做数据清洗,我一般都这么干……
- 和大家分享一款使用PHP+MYSQL搭建在线教育系统源码
- HTML5如何实现网页消息通知提醒
- CTA-敏感行为-复制到剪切板/从剪切板粘贴
- python微信投票该用户被锁定、恢复时间_因投票微信账号出现异常被封禁7天的解封方法讲解...
- 圆锥体积公式的推导过程(Formula Derivation of Cone's volume)
- 拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程
- 人工智能入门第一课:手写字体识别及可视化项目(手写画板)(mnist)
- win10关机后cpu风扇还在转_解决win10关机后风扇继续转方法
- 鸿蒙os电脑界面,鸿蒙OS平板UI界面曝光:双Dock栏设计+超级终端互联功能
- ggplot2图形排版:patchwork包简单入门
- 拿高分文章,还得是Synaptic Systems 微管蛋白抗体
- 数字音视频编解码技术标准工作组会员单位
热门文章
- 无人机设计过程中的计算和假设
- RestTemplate获取HTTP状态码
- 如何自动加载scratch3.0的页面上实现自动加载原有的作品
- 360手机助手关于签名校验的分析
- django清空数据库
- 第一章 信息化与信息系统习题
- Java docx4j 操作word 2.1
- 在html页面中加入矢量图,在html中引用矢量图
- python 生意参谋_电商 Python 抓取 生意参谋-访客数据
- 计算机office2010excel试题,将计算机二级Office2010Excel试题中会出现的所有公式汇总...