mysql将查询结果作为临时表查询_mysql使用查询结果作为临时表
(一)select查询作为临时表
select cou,name from (select count(*) AS cou,enabled AS name from `user` group by enabled ) as a where cou>0
上面的语句就是将查询结果作为临时表,然后再在这个临时表中查找满足条件的数据。
语法: (注意:AS 可省略)
CODE:
SELECT ... FROM (subquery) AStableName ...
先创建一个表:
CODE:
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);
我们就可以进行以下的嵌套查询了:
CODE:
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.
SELECT AVG(sum_column1) FROM (SELECT SUM(column1) AS sum_column1 FROM t1 GROUP BY column1) AS t1; (二)
行的子查询(Row Subquery)
SELECT * FROM t1 WHERE ROW(1,2) = (SELECT column1, column2 FROM t2);
在该例子中,在保证子查询返回单一行数据的前提下,如果 column1=1 且 column2=2 ,则该查询结果为 TRUE。
MySQL 行构造符
在上面的例子中,WHERE 后面的 (1,2) 被称为行构造符,也可以写作 ROW(1,2)。行构造符通常用于与对能返回两个或两个以上列的子查询进行比较。
SELECT * FROM article WHERE (title,content,uid) = (SELECT title,content,uid FROM blog WHERE bid=2)注意:[SQL] SELECT * FROM `user` WHERE ROW(username,`password`) = (SELECT username, `password` FROM `user`);
[Err] 1242 - Subquery returns more than 1 row
这是因为查询结果多于一行,可以这样处理
SELECT * FROM `user` WHERE ROW(username,`password`) = ANY(SELECT username, `password` FROM `user`);
(三).使用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);
(四)
条件关联关系查询
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));
跟其他数据库做法是一样的。
mysql将查询结果作为临时表查询_mysql使用查询结果作为临时表相关推荐
- mysql慢查询日志分析工具比较_MySQL慢查询日志总结 日志分析工具mysqldumpslow
慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志 ...
- mysql查询只能是等式连接_mysql连接查询
14.1 实验目的 (1)掌握多表连接查询的常用方法 (2)了解外连接查询的方法 14.2 预备知识 1.多表连接查询的意义 很多情况下,我们要查询的结果无法从一张表中得到.例如要想知道"参 ...
- mysql临时表空间_MySQL 5.7 深度解析: 临时表空间
先来说说临时表的概念. 临时表顾名思义,就是临时的,用完销毁掉的表. 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上. 临时表有下面几种: 全局临时表 这种临时表从数据库实例启动后 ...
- mysql子查询分为几种方法_MYSQL子查询的5种形式
mysql从4.1版开始支持子查询功能,在此版本前,可以用join写连表查询来进行替代,但不推荐这么写,相当麻烦,mysql子查询的几种常 见写法: 1.select * from xxx where ...
- mysql 查询一个月的时间_mysql日期查询sql语句总结(查询一天,查询一周,查询一个月的数据)...
我的日期 首先我们获取到的日期格式是这样的:2009-2-12或者2009-3-3或者2009-10-12,我们在组合sql语句的时候可以这样:(分了三个例子) 代码如下 @1select * fro ...
- mysql查询班级作业提交情况_MySQL中查询获取每个班级成绩前三名的学生信息
标签: 今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore( pk_id INT ...
- mysql慢查询日志默认在哪里_MySQL 慢查询日志
慢查询日志概念 MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中查询响应时间超过阈值的语句,具体指响应时间超过 long_query_time 值的 SQL,会 ...
- mysql查找各科分数相同的学生_mysql中 查询各科成绩都在80以上的学生的姓名
最近遇到一个关于mysql的查询的问题,就是在成绩表里查询各科成绩都在80以上(含80分)的学生姓名,在网上找了一个例子,供大家参考学习: 1. 2.也有人在网上用了别外的办法来查找,如下: 使用了分 ...
- mysql查询特定时间数据视频_MySQL如何查询指定时间数据
mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添 ...
- mysql查询这一周数据库_mysql如何查询当前时间是星期几?
select date_format(curdate(),'%w') from dual; 更多参考: MySQL中DATE_FORMAT(date, format)函数可根据format字符串格式化 ...
最新文章
- Java 10- 详解var关键字和示例教程
- ZooKeeper第三方客户端CuratorFramework简介
- 大型项目中会出现的一些问题:
- mysql5.7 非gtid同步
- android dbinfo函数,android SQLiteDatabase中的update函数用法?
- 美国发布新的安全备忘录,提升关键基础设施的网络安全
- 这12道经典性能测试人员面试题,你都见过哪几道?(下)
- 学习common-upload源码,理解上传原理
- Java设计模式(四)——再谈观察者模式
- windows技巧——notepad2 取代自带 notepad ,功能强大!
- 如何在vmware workstation 8下成功安装fedora 14
- K3 工业单据的对应相关表作用
- go语言两个json对比
- 神经网络为什么叫神经网络【一文看懂】
- Ceph 网络模块(1) - 网络模块基本结构
- you-get遇到的坑
- Linux内核:一文搞懂外设I/O内存资源的静态映射方式
- 计算机未安装打印机,Win7使用打印机突然提示“尚未安装打印机”怎么回事
- 使markdown文档中的图片居中
- C语言网 1881: 蓝桥杯2017年第八届真题-Excel地址(python)
热门文章
- windows10 强制关闭全屏游戏卡死的方法
- linux shell 看门狗,Linux 下如何使用看门狗
- FineReport报表工具最新版本细则
- 蚂蚁金服的“开放联盟链”如何影响现有公链
- HTML5七夕情人节表白网页制作【抖音超火的罗盘时钟】HTML+CSS+JavaScript
- 蓝桥杯简单题之十六进制转八进制(JAVA版)
- 说说在 Python 中如何处理文件系统路径
- 河北工业大学数据挖掘实验四 贝叶斯决策分类算法
- 物联网操作系统HelloX V1.82发布公告
- 支付宝小程序手机相册上传多个图片踩坑