MySQL之SQL语句实现将三个查询结果集拼接成一个表
遇到的问题:
现在利用SQL语句查询得到三个结果集,每一个结果集是两列,具体为排名序号与对应的名字,如下表一。但是现在需要将这三个结果集拼接成为一个表,并且只有一个排名序号。
排名 | 姓名 |
1 | 张三 |
2 | 李四 |
利用SQL语句实现:
SELECT rownum, MAX(post1) AS post1,MAX(post2) AS post2,MAX(post3) AS post3
FROM
(SELECT @rownum1 := @rownum1 + 1 AS rownum, firstname AS post1,'' AS post2,'' AS post3
FROM
(SELECT firstname
FROM
exam_main a,
exam_rel_user b,
account c,
core_dept d
WHERE a.`id` = b.`exam_id`
AND b.`user_id` = c.`user_id`
AND c.`dept_id` = d.`id`
AND c.`position` IN (
'01010101',
'01010102',
'01010104'
)
ORDER BY b.score DESC,
b.last_attempt_date ASC) aa,
(SELECT
@rownum1 := 0) bb
UNION ALL
SELECT @rownum2 := @rownum2 + 1 AS rownum, '' AS post1,firstname AS post2, '' AS post3
FROM
(SELECT
firstname
FROM
exam_main a,
exam_rel_user b,
account c,
core_dept d
WHERE a.`id` = b.`exam_id`
AND b.`user_id` = c.`user_id`
AND c.`dept_id` = d.`id`
AND c.`position` IN (
'01010201',
'01010202',
'01010204'
)
ORDER BY b.`score` DESC,
b.`last_attempt_date` ASC) aa,
(SELECT
@rownum2 := 0) bb
union all
SELECT @rownum3 := @rownum3 + 1 AS rownum,'' as post1, '' as post2, firstname as post3 //这里的两个单引号分别代表两个空值,也就是把post1与post2值设为空,最后也就是把第一列与第二列的设为空的一列。
from
(SELECT
firstname
FROM
exam_main a,
exam_rel_user b,
account c,
core_dept d
WHERE a.`id` = b.`exam_id`
AND b.`user_id` = c.`user_id`
AND c.`dept_id` = d.`id`
AND c.`position` IN ('01010203', '01010206')
ORDER BY b.`score` DESC,
b.`last_attempt_date` ASC) aa,
(SELECT
@rownum3 := 0) bb
) cc
/* where rownum = 1*/
group by rownum
注:
1.这里面涉及四个表exam_main a, exam_rel_user b, account c, core_dept d ,其中考试记录表exam_main中的id为考试结果表exam_rel_user的exam_id外键,考试结果表中user_id外键为人员表中user_id,人员表中dept_id外键为core_dept部门表中的id。
2.每个结果集看作是一个表,三个结果集用 union all 连接,最后将三个结果集又看做一个表。
3.用SQL语句产生排名序号利用的是在结果集(当做一个表)之外添加查询.如下:
SELECT @rownum := @rownum + 1 AS rownum,'' as post1, '' as post2, firstname as post3
FROM (结果集)aa
(SELECT @rownum3 := 0) bb
此处勿忘在最后的括号外添加别名,否则会出错。
转载于:https://www.cnblogs.com/Klose-AK47/p/5799618.html
MySQL之SQL语句实现将三个查询结果集拼接成一个表相关推荐
- MySQL高级SQL语句(终章)
目录 一:通配符 1.1查询名字是有开头的记录 1.2查询名字里是贝和摩中间有一个字符的记录 1.3查看贝后面3个字符的名字记录 1.4通配符%和_结合使用 二:子查询 2.1相同表查询 2.2不同表 ...
- mysql数据库sql语句大全
mysql sql语句大全 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql se ...
- Effective MySQL之SQL语句最优化--索引
1 两个索引取并集组合 -- 执行命令: ALTER TABLE album ADD INDEX name_release (name,first_released); EXPLAIN SELECT ...
- mysql基本SQL语句
这篇文章主要介绍了Mysql数据库之sql基本语句以及作用,还有数据库.数据表等常见操作技巧,需要的朋友可以参考下 mysql基本SQL语句 1.常见命令 mysql -u root -p # 连接数 ...
- MySQL 使用SQL语句实现 增删改查
MySQL 使用SQL语句实现 增删改查 环境准备:MySQL,navicat 一.增加数据 语法: INSERT INTO 表名(字段1,字段2,字段3...) VALUES(值1,值2,值3... ...
- MYSQL补充SQL语句
MYSQL补充SQL语句 一.order by按关键字排序 对指定单个或多个字段作为条件进行排序 现在我们有一张表,我们可以通过对id和age作为条件进行排序(注意:排序要从左到右进行运行) ...
- 【数据库】MySQL的sql语句详解
目录 MySQL之sql语句 一, INSERT语句 insert语句的使用: 1,给表中一次性插入一条记录 2,给表中一次性插入多条记录 二, REPLACE语句 REPLACE语句的使用 1,语法 ...
- MySQL中SQL语句——DQL(数据查询语句)
前言: 首先对于数据库有一定的了解,会对于Mysql的学习有一定的帮助: 数据库主要分为 DB(数据库),DBMS(数据库管理系统),SQL(结构化查询语言,用于和DBMS通信的语言):这篇要讲的DQ ...
- MysQL高级SQL语句|进阶语句|select语句(一)【图文细解】
MysQL高级SQL语句 一.SQL语句的概述 SELECT DISTINCT WHERE AND.OR IN BETWEEN 通配符 LIKE ORDER BY GROUP BY HAVING 二. ...
- MYSQL常用SQL语句分享
转自:微点阅读 https://www.weidianyuedu.com SQL分类: DDL-----数据定义语言(CREATE--创建,ALTER--修改. DROP--删除表,DECLARE- ...
最新文章
- 【顶会资源汇总】2020最新视觉描述生成文献大列表
- eclipse 工程复制
- Markdown拾遗
- python and or 优先级
- 80070583类不存在_结合JVM源码谈Java类加载器
- java中VO、PO、DTO 、DO、POJO、BO、TO
- SemVLP 单流和双流Transformer哪个好?阿里:我全都要!提出带可插拔模块的Transformer结构...
- python3ubunton安装视频_ubuntu16.04安装python3的包报错
- 黄金分割圆怎么画matlab,黄金分割线画法图解(操作技巧)
- 计算机网络路由器方面的论文,简析计算机网络问题中路由器故障的论文
- 简约好看侧边栏(HTML、CSS)
- 从 json 文件到炫酷动画 - Lottie 实现思路和源码分析
- 大屏scroll滚动轴样式
- SIFT特征原理与理解
- 关于地统计的一些知识点
- Sakai的安装使用
- atob解码图片base64时候报错
- 逍遥安卓 出现android,解决逍遥安卓模拟器一直卡在99%的方法
- “第一股”争夺战:每日优鲜、叮咚买菜及美菜网谁能杀出重围?
- 基于iSensor的MT9M001C12STM传感器调试总结
热门文章
- w7网络计算机共享,网络共享设置 win7局域网共享设置最简单教程
- 精讲!!! Web服务器基础与http协议
- iphone 文件夹连接服务器 百度云,iPhone与电脑共享文件夹
- 第七届山东理工大学ACM趣味编程循环赛 Round#1 sdut4109 玄黄的字符串
- 线性代数笔记4.4(二)非齐次线性方程组解的结构
- html5读取加速度传感器,一文读懂加速度传感器
- opencv的学习与人脸情绪识别项目(一)
- Delphi XE10.4字体字号对应的Font Size的点或像素换算
- PS-第五天-图层样式
- ipad触屏失控出现乱跳