24.MySQL中的联合查询(UNION)

1.简介

联合查询是多表查询的一种方式,经常应用在分表操作中,在保证多个SELECT语句的查询字段数相同的情况下,合并多个查询的结果。

语法

SELECT …
UNION [ALL | DISTINCT] SELECT …
[UNION [ALL | DISTINCT] SELECT …];

UNION是实现联合查询的关键字。

ALL表示保存所有的查询结果。

DISTINCT是默认值,可以省略,表示去除完全重复的记录

2.准备

CREATE DATABASE mahaiwuji;

USE mahaiwuji;

CREATE TABLE student1 (
    sid INT (4) PRIMARY KEY,
    sname VARCHAR (36),
    score INT
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO student1 VALUES (1,'a1',60);
INSERT INTO student1 VALUES (2,'a2',65);
INSERT INTO student1 VALUES (3,'a3',70);
INSERT INTO student1 VALUES (4,'a4',75);
INSERT INTO student1 VALUES (5,'a5',80);


CREATE TABLE student2 (
    sid INT (4) PRIMARY KEY,
    sname VARCHAR (36),
    score INT
) ENGINE = INNODB DEFAULT CHARSET = utf8;

INSERT INTO student2 VALUES (5,'a5',80);
INSERT INTO student2 VALUES (6,'a6',85);
INSERT INTO student2 VALUES (7,'a7',90);
INSERT INTO student2 VALUES (8,'a8',95);
INSERT INTO student2 VALUES (9,'a9',100);
s24_1.png
s24_2.png

3.案例

-- 自动去掉完全重复的数据
SELECT * FROM student1
UNION
SELECT * FROM student2;
s24_3.png
-- 合并所有的数据
SELECT * FROM student1
UNION ALL
SELECT * FROM student2;
s22_4.png
-- 合并部分数据
SELECT * FROM student1 WHERE sid=1
UNION ALL
SELECT * FROM student2;
s24_5.png
-- 排序
SELECT * FROM student1
UNION ALL
SELECT * FROM student2
ORDER BY sid DESC;
s24_6.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者:烨竹 数据库的基本操作 登陆MySQL数据库服务:mysql -h服务器地址 -P端口号 -u用户名 ...
    DragonRat阅读 5,176评论 0 7
  • 手动不易,转发请注明出处 --Trance 数据库系统命令: (1).查看存储过程状态:show pro...
    Trance_b54c阅读 5,678评论 0 8
  • 第三课: 排序检索数据 distinct关键字:distinct 列名1,列名2,列名3DISTINCT 关键字会...
    VictorBXv阅读 5,370评论 0 8
  • 一、mysql(非常重要) day12-mysql2 1、DDL(数据定义) 连接数据库格式:Mysql -h -...
    文化银儿阅读 6,028评论 0 9
  • Test,测试!
    寧南阅读 1,677评论 0 1