Mysql 嵌套子查询

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mysql 嵌套子查询

子查询

需求是:最外层的查询语句里面包含四个不相同表的查询,根据月份进行关联查询,每个查询语句中的where条件可以自行去定义,最后返回数量和月份

语法:

select a.月份,a.总数一,b.总数二,c.总数三,d.总数四
from (
         SELECT
             CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0')) AS Month,
             COUNT(DISTINCT m.id) AS 总数一
         FROM persion m
                  JOIN zs_yi br ON m.id = br.p.id
         WHERE
                 YEAR(br.measuring_time) = 2023 AND  (
                 (br.dbpval > m.dbpval_max OR br.dbpval < m.dbpval_min) OR
                 (br.sbpval > m.sbpval_max OR br.sbpval < m.sbpval_min)
        )
        GROUP BY CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0'))
        ) a left join
        (
        SELECT
        CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0')) AS Month,
        COUNT(DISTINCT m.id) AS xtCount
        FROM pserion m
        JOIN zs_er br ON m.id = br.p_id
        WHERE
        YEAR(br.measuring_time) = 2023 AND (
        (br.gluval > m.sugar_max OR br.gluval < m.sugar_min)
        )
        GROUP BY CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0'))
        ) b on a.月份 = b.月份 left join
        (
        SELECT
        CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0')) AS Month,
        COUNT(DISTINCT m.id) AS xzCount
        FROM pserion m
        JOIN zs_san br ON m.id = br.p_id
        WHERE
        YEAR(br.measuring_time) = 2023 AND (
        (br.total_cholesterol > m.blood_max OR br.total_cholesterol < m.blood_min)
        )
        GROUP BY CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0'))
        ) c on a.月份 = c.月份 left join
        (
        SELECT
        CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0')) AS Month,
        COUNT(DISTINCT m.id) AS tzCount
        FROM persion m
        JOIN zs_si br ON m.id = br.p_id
        WHERE
        YEAR(br.measuring_time) = 2023 AND (
        (br.bmi > m.bodyfat_max OR br.bmi < m.bodyfat_min)
        )
        GROUP BY CONCAT(YEAR(br.measuring_time), '-', LPAD(MONTH(br.measuring_time), 2, '0'))
        ) d on a.月份 = d.月份
        order by a.月份 asc
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL】基本查询(表的增删改查)-- 详解(上)
【MySQL】基本查询(表的增删改查)-- 详解(上)
|
11天前
|
关系型数据库 MySQL
【MySQL】复合查询(重点)-- 详解
【MySQL】复合查询(重点)-- 详解
|
11天前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
|
11天前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
|
11天前
|
关系型数据库 MySQL 数据库管理
【MySQL进阶之路 | 基础篇】子查询之二(不相关子查询与相关子查询)
【MySQL进阶之路 | 基础篇】子查询之二(不相关子查询与相关子查询)
|
11天前
|
SQL 关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】子查询之一(单行子查询, 多行子查询)
【MySQL进阶之路 | 基础篇】子查询之一(单行子查询, 多行子查询)
|
11天前
|
SQL Oracle 关系型数据库
【MySQL】基本查询(表的增删改查)-- 详解(下)
【MySQL】基本查询(表的增删改查)-- 详解(下)
|
14天前
|
关系型数据库 MySQL Linux
查询服务器中有没有mysql - 蓝易云
同样,如果MySQL已经安装,这个命令将会显示MySQL的版本信息。如果没有安装,系统将会显示一个错误消息。
67 0
|
14天前
|
SQL 关系型数据库 MySQL
查询mysql版本sql - 蓝易云
执行这个命令后,MySQL将返回当前正在运行的版本信息。
42 0
|
16天前
|
缓存 关系型数据库 MySQL
如何优化MySQL数据库查询性能
MySQL是一款常用的关系型数据库,但在实际使用过程中,由于数据量增加和查询操作复杂度增加,会导致查询性能下降。本文将介绍一些优化MySQL数据库查询性能的方法。