✅ 操作成功!

union用法

发布时间:2023-06-04 作者:admin 来源:文学

union用法

union用法

-中国皮肤色卡对照表

2023年2月15日发(作者:西溪湿地公园)

mysql多表union_mySql多表连接查询与union与unionall⽤法

1.准备两个表

表a

表b

2.进⾏连接查询测试:

(1)交叉连接(笛卡尔积)

SELECT*FROMa,b

(2)内连接

显⽰内连接

SELECTa.*,b.*=

显⽰内连接过滤条件:

SELECTa.*,b.*==11

隐⼠内连接:

SELECT*FROMa,=

隐⼠内连接筛选结果:

SELECT*FROMa,==11

(3)左外连接:

SELECTa.*,b.*=

(4)右外连接:

SELECTa.*,b.*=

和unionall

(1)union:去掉重复元素

SELECT*FROMa

UNION

SELECT*FROMb

总结:

union:联合的意思,即把两次或多次查询结果合并起来。

要求:两次查询的列数必须⼀致

推荐:列的类型可以不⼀样,但推荐查询的每⼀列,想对应的类型以⼀样

可以来⾃多张表的数据:多次sql语句取出的列名可以不⼀致,此时以第⼀个sql语句的列名为准。

如果不同的语句中取出的⾏,有完全相同(这⾥表⽰的是每个列的值都相同),那么union会将相同的⾏合并,最终只保留⼀⾏。也可以这样

理解,union会去掉重复的⾏。

如果不想去掉重复的⾏,可以使⽤unionall。

如果⼦句中有orderby,limit,需⽤括号()包起来。推荐放到所有⼦句之后,即对最终合并的结果来排序或筛选。

(2)unionall 保留重复元素

UNIONALL命令和UNION命令⼏乎是等效的,不过UNIONALL命令会列出所有的值。

SELECT*FROMa

UNIONALL

SELECT*FROMb

总结:

UNION⽤于合并两个或多个SELECT语句的结果集,并消去表中任何重复⾏。

UNION内部的SELECT语句必须拥有相同数量的列,列也必须拥有相似的数据类型。

同时,每条SELECT语句中的列的顺序必须相同.

默认地,UNION操作符选取不同的值。如果允许重复的值,请使⽤UNIONALL。

当ALL随UNION⼀起使⽤时(即UNIONALL),不消除重复⾏

注意:

1、UNION结果集中的列名总是等于第⼀个SELECT语句中的列名

2、UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相

👁️ 阅读量:0