SQL [UNION]和[UNION ALL]用法

原文链接:SQL UNION和UNION ALL用法

一、概述

unionunion all都用于合并多个查询,用法为:

select * from a union select * from b;
select * from a union all select * from b;

两者的区别是union all合并的结果中会有重复记录,而union中没有。

二、示例

创建两张表chinese和math分别表示语文课和数学课的选课情况:

CREATE TABLE chinese (
  id   INT UNSIGNED PRIMARY KEY  AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL
);

INSERT INTO chinese (name) VALUES ('小明'), ('小花'), ('小白'), ('小刚');

CREATE TABLE math (
  id   INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL
);

INSERT INTO math (name) VALUES ('小明'), ('小李'), ('老王');

2.1 union

SELECT name FROM chinese
UNION
SELECT name FROM math;

结果中没有重复记录小明

SQL [UNION]和[UNION ALL]用法_第1张图片
image.png

2.2 union all

SELECT name FROM chinese
UNION ALL
SELECT name FROM math;

结果中有重复记录小明

SQL [UNION]和[UNION ALL]用法_第2张图片
image.png

你可能感兴趣的:(SQL [UNION]和[UNION ALL]用法)