mysql使用查询结果作为临时表
来源:互联网 发布:怎样注册网络 编辑:程序博客网 时间:2024/05/16 12:27
(一)select查询作为临时表
select cou,name from (select count(*) AS cou,enabled AS name from `user` group by enabled ) as a where cou>0
上面的语句就是将查询结果作为临时表,然后再在这个临时表中查找满足条件的数据。
语法: (注意:AS 可省略)
先创建一个表:
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);
我们就可以进行以下的嵌套查询了:
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;
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 <span style="color:#ff0000;">DISTINCT</span> store_type FROM Stores WHERE <span style="color:#ff0000;">EXISTS</span> (SELECT * FROM Cities_Stores WHERE Cities_Stores.store_type = Stores.store_type);
SELECT DISTINCT store_type FROM Stores WHERE <span style="color:#cc0000;">NOT EXISTS</span> (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)); 跟其他数据库做法是一样的。
0 0
- mysql使用查询结果作为临时表
- mysql 怎么把查询结果作为表名继续查询
- mysql创建临时表,将查询结果插入已有表中
- mysql 把select结果保存为临时表,mysql中把查询结果输出到临时表
- mysql 把select结果保存为临时表,mysql中把查询结果输出到临时表
- 数据库查询结果作为表
- Mysql Procedure 使用concat申城动态字段、存储查询结果到临时变量
- 将union查询结果存入临时表
- MySQL 使用查询结果创建表
- mysql分组查询结果集作为条件查询的问题
- mysql 以查询结果作为查询条件sql写法
- 关于with as 作为查询片段的使用和与临时表#Table的比较
- 如何使用临时表将2个查询结果并在一起
- mysql子查询结果作为最后的列
- Ibatis使用Map作为映射结果,进行多表连接查询
- sql从查询结果创建一个临时表
- Oracle将查询结果存入临时表的写法
- (mysql)临时表的使用
- iOS 之NSURLConnection和NSURLSession
- CDN技术原理
- css下的文本长度控制
- 布局归纳总结
- 如果uiView B为半透明, 如何让加载上边的UIView C不透明?
- mysql使用查询结果作为临时表
- 最牛B的编码套路
- ios UIlabel 行间距
- 静态html分页
- 关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- [Android]调用字符串资源的几种方法
- 高大尚的Java反射技术A
- 将斜杠替换成两个斜杠 java replaceAll方法 正则表达式
- 软件工程第三次作业