mysql中多表嵌套查询例子_mysql子查询嵌套规则

mysql中多表嵌套查询例子_mysql子查询嵌套规则本文实例分析了MySQL嵌套查询。分享给大家供大家参考,具体如下:MySQl从4.11版后已经完全支持嵌套查询了,那么下面举些简单的嵌套查询的例子吧(源程序来自MySQLUserManual):1.SELECT语句的子查询语法:代码如下:SELECT…FROM(subquery)ASname…先创建一个表:CREATETABLEt1(s1INT,s2CHAR(…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本文实例分析了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进行集合的匹配。

希望本文所述对大家MySQL数据库程序设计有所帮助。

您可能感兴趣的文章:MYSQL子查询和嵌套查询优化实例解析

MySQL子查询的几种常见形式介绍

mysql关联子查询的一种优化方法分析

PHP中实现MySQL嵌套事务的两种解决方案

mysql嵌套查询和联表查询优化方法

详解MySQL子查询(嵌套查询)、联结表、组合查询

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179473.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java websocket_docker rocketmq

    Java websocket_docker rocketmqHandlerSocket是MySQL的一个Plugin,通过它可以直接跟MySQL的StorageEngineLayer(比如InnoDB)交互,而不需要通过MySQL的ParserLayer。从性能角度有很大的提升。    HandlerSocket特别适用于海量数据、高并发的具有简单业务模型的应用,比如微博、Feed。可以用来替代传统Memcached+MySQL的方式,而且

    2022年8月24日
    6
  • IRP

    IRP

    2021年8月17日
    88
  • 西门子plc冒泡法排序程序_博途graph编程讲解

    西门子plc冒泡法排序程序_博途graph编程讲解TIA博途中实现冒泡排序的两种SCL语言算法TIA博途软件版本:V15.0首先新建一个项目(具体过程这里就不演示了),添加一个FC块(或FB块均可),编程语言选择SCL,如下图,在FC的块接口中,定义我们需要的变量;一个数组型INT变量a用于存储需要排序的数据;一个INT型变量i:排序的起始序号;一个INT型变量j:排序的结束序号;一个TEMP型变量temp1:用于暂时存储中间比较的数据;利用SCL语言中的FOR循环语句,如下图中的程序,使得数组中的数据从a[i]开始比较到a[j],然后从小

    2022年10月6日
    2
  • vue使用富文本编辑器tynimce并实现图片上传_富文本编辑器有什么用

    vue使用富文本编辑器tynimce并实现图片上传_富文本编辑器有什么用vue-富文本编辑器Vue-Quill-Editor使用官网文档,可以参照文档进行使用https://www.kancloud.cn/liuwave/quill/1434140简单的使用:首先安装依赖:npminstallvue-quill-editor–save然后可以在全局挂载或者在单页面挂载单页面挂载示例:importVuefrom’vue’importVueQuillEditorfrom’vue-quill-editor’//requirestyles

    2022年10月14日
    1
  • 学习如何搭建SpringBoot框架

    学习如何搭建SpringBoot框架SpringBoot是一个非常好用的框架,在项目中我们常常会用到它,今天我来分享一下如何来搭建一个SpringBoot框架。第一步:创建项目打开Idea,点击File->New->Project->SpringInitalizr选择依赖:即使不选择依赖也可以在后续pom.xml文件中添加点击Finish,Idea会自动生成一个SpringBoot项目,如此一来项目就创建好了。第二步:配置数据库到resource->application.proper

    2022年8月20日
    7
  • docker搭建kafka集群[通俗易懂]

    docker搭建kafka集群[通俗易懂]docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

    2022年4月25日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号