as mysql with 嵌套_MySQL_MySQL的嵌套查询,MySQl从4.11版后已经完全支持嵌 - phpStudy

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进行集合的匹配。

本文作者:相关阅读:

ADO.NET Data Services 1.5新特性

为挖掘模型创建准确性图表

经验分享:关于网页布局排版的流程问题

纯脚本备份_还原驱动增强版附相关sleep.exe

浅谈 Mousewheel 事件

SQL2005 存储过程解密方法

php 数组的创建、调用和更新实现代码

使用System.Diagnostics.Stopwatch对程序的运行时间精确地测量

儿童开发工具Kodu加入到PC中

SELECT TOP N 问题

VBS 路由重启脚本

apache和IIS共用80端口

斜角滑动门导航条(DIV+CSS)

模仿JQuery sortable效果 代码有错但值得看看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 1215_mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决...

ERROR 1215 (HY000): Cannot add foreign key constraint最近在建表时遇到了这个错误&#xff0c;然后找了下找到了解决办法&#xff0c;记录下&#xff1a;本来是要建两张表&#xff1a;出现下面的提示&#xff1a;然后开始上网查&#xff0c;有的说是用的引擎不同的原因&…

mysql里面可以用正则吗_Mysql中使用正则表达式

最近在《MYSQL必知必会》这本书中读到在SQL中使用正则表达式&#xff0c;以前是学过数据库也学过正则表达式&#xff0c;但是不知道原来他们可以一起使用&#xff0c;这里做下记录。首先是Mysql使用正则表达式的语法&#xff1a;SELECT ... FROM ... WHERE ... REGEXP ...(这…

mysql数据库的备份和恢复的常用方法_MySQL数据库备份与恢复方法(转)

常有新手问我该怎么备份数据库&#xff0c;下面介绍3种备份数据库的方法&#xff1a;MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL的安装路径而定&#xff0c;DiaHost…

mysql sum函数返回类型_MySQL的sum函数返回的门类

MySQL的sum函数返回的类型 今天项目切换数据库时&#xff0c;出错 访问数据库的代码大概是这样&#xff1a; String sql "select sum(number) as sumNumberOfOneDay from tableName";ListMap rows getJdbcTemplate().queryForList(sql);for (Map row : rows) {Some…

mysql 联合索引 性能_mysql:联合索引及优化

命名规则&#xff1a;表名_字段名1、需要加索引的字段&#xff0c;要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系&#xff0c;加索引不起作用4、符合最左原则尽量不要用or&#xff0c;如果可以用union代替&#xff0c;则一定要代替https://segmentf…

以下不属于mysql列类型的是什么意思_下列 ________ 类型不是 MySQL 中常用的的数据类型。_学小易找答案...

【简答题】工作区跳线的制作 请依据EIA568国际标准,制作一根直通线(即两端都是EIA568B线芯排布规律) 做好网线后,请拍照上传作业。【单选题】UNIQUE 惟一索引的作用是 ( ) :【简答题】根据实地观察结果,分别从树性、枝干、叶片、花、果实(如果有)等器官指出以下三组果树在植株形…

ruby mysql dbi_Ruby MySQL DBI实例

本次章节将介绍如何用Ruby来访问数据库。类似的Perl DBI模块为Ruby脚本的Ruby DBI模块提供了一种数据库(这里用MySQL讲解)独立的接口。DBI代表数据库无关的接口为RubyDBI提供的Ruby代码和底层数据库之间的抽象层&#xff0c;允许你真的很容易切换数据库实现。它定义了一套方法&…

api demo 京东商品详情_jd-demo

一个仿京东的网站&#xff1a;后端使用java&#xff0c;基本架构&#xff1a;springMVC spring mybatis&#xff1b;前端技术&#xff1a;HtmlCSSJQueryReactSass...后台接口说明&#xff1a;####1.统计用户、商品、订单数量/manage/statistic/base_count.dorequest无respons…

mysql linux 迁移mac_Mac和Linux之间传输数据,并导出mysql数据到本地

从 本地 复制到 远程复制文件&#xff1a;命令格式&#xff1a;scp local_file remote_usernameremote_ip:remote_folder或者scp local_file remote_usernameremote_ip:remote_file或者scp local_file remote_ip:remote_folder或者scp local_file remote_ip:remote_file第1,2个…

mysql与tomcat_mysql数据库与tomcat服务器的一些细节问题

java程序使用数据库的方法1.使用jndi数据源核心代码&#xff1a;initCtx new InitialContext()DataSource ds;ds (DataSource) initCtx.lookup("java:comp/env/jdbc/mysql1");conn ds.getConnection();----------配置服务器信息web项目web.xml中配置MySQL DB Conn…

python出现严重错误_安装出现严重错误!大神帮忙分析下原因

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼查看日志结果如下&#xff1a;(看不懂。。。)[2874:052C][2018-07-05T22:18:14]e000: Error 0x80070643: Failed to install MSI package.[2874:052C][2018-07-05T22:18:14]e000: Error 0x80070643: Failed to configure per-user …

信息安全学习路线图_Python学习图谱:学习到困惑的时候可以参考的图谱

很多同学都想学习Python&#xff0c;最近就连地产大佬潘石屹都要学Python。刚刚开始学习Python的同学来说&#xff0c;不知道从哪里下手&#xff0c;学习起来比较困惑&#xff0c;没有找到一个好的学习方法&#xff0c;没有高手带路&#xff0c;没有人督促你学习&#xff0c;或…

如何更新mysql数据库字段_如何使用MySQL一个表中的字段更新另一个表中字段

1&#xff0c;修改1列update student s, city cset s.city_name c.namewhere s.city_code c.code;2&#xff0c;修改多个列update a, bset a.titleb.title, a.nameb.namewhere a.idb.id•子查询update student s set city_name (select name from city where code s.city_c…

mysql到mysqli转变表_利用mysql和mysqli取得mysql的所有数据库和库中的所有表

/*** mysqli op mysql demo*//***公用函数*//***功能&#xff1a;列出一个数据库的所有表*param$dbname*param$con*/functionlist_tables($dbname,$con){mysql_select_db($dbname,$con)or die("选择数据库失败!");$res mysql_query("SHOW TABLES");$table…

zabbixdocker里的mysql_docker zabbix安装部署(数据库和web及zabbix服务都用docker版)

一、docker zabbix相关镜像下载分别docker pull (mysql:5.7 、zabbix/zabbix-agent 、zabbix/zabbix-server-mysql 、zabbix/zabbix-web-nginx-mysql)[rootald8 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7 98455b9624a9 12 days ago 372MBzabbix/zabbix…

mysql gui 修改密码_MySQL修改root密码的各种方法整理

整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!方法1&#xff1a; 用SET PASSWORD命令mysql -u rootmysql> SET PASSWORD FOR rootlocalhost PASSWORD(newpass);方法2&#xff1a;用mysqladminmysqladmin -u root password "newpass"如果root已…

mysql 物理结构设计_数据库的物理结构设计指的是什么?

Log Goup ID&#xff0c;可能会配置多个redo组&#xff0c;每个组对应一个id&#xff0c;当前都是0&#xff0c;占用4字节Start LSN&#xff0c;这个redo log文件开始日志的lsn&#xff0c;占用8字节Log File Number&#xff0c;总是为0&#xff0c;占用4字节Created By&#x…

mysql 监控 开源_强大的开源企业级数据库监控利器Lepus

Lepus监控简单介绍开源企业级数据库监控系统简洁、直观、强大的开源数据库监控系统&#xff0c;MySQL/Oracle/MongoDB/Redis一站式性能监控&#xff0c;让数据库监控更简单简单介绍&#xff1a;Lepus(天兔)数据库企业监控系统是一套由专业DBA针对互联网企业开发的一款专业、强大…

python的fopen函数_linux c函数(fgets,fputs,fopen)

clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。返回值fclose(关闭文件)相关函数 close&#xff0c;fflush&#xff0c;fopen&#xff0c;setbuf表头文…

java整数转字符串_Java整型与字符串相互转换(转)

1如何将字串 String 转换成整数 int?A. 有两个方法:1). int i Integer.parseInt([String]); 或i Integer.parseInt([String],[int radix]);2). int i Integer.valueOf(my_str).intValue();注: 字串转成 Double, Float, Long 的方法大同小异.2 如何将整数 int 转换成字串 St…