13.mysql联合(union)查询 概念 语法

2019年12月9日23:09:18 评论 27 次浏览

13.1.联合查询概念

联合查询是指将2个或2个以上的字段数量相同的查询结果,“纵向堆叠”后合并为一个结果。

select  id,  f1,  f2  from  join1  
union  
select  id2,  c1,  c2  from  join2;
13.mysql联合(union)查询 概念 语法

13.2.联合查询语法

select查询1
union  [all或distinct]
select查询2
union  [all或distinct]
select查询3
...... 
[order by 字段  [asc或desc] ]
[limit  起始行号,数量] ;

1,所有单个查询结果应该具有相等的列数。
2,所有单个查询的列类型应该具有一致性(即每个查询的第n列的数据类型一致)。
3,单个查询的列名可以不同,但最终的列名是第一个查询的列名(可以使用别名)。
4,union可以带all或distinct参数,如果省略就是distinct,即默认已经消除重复行了。
5,最后的order by或limit是对整个联合之后的结果数据进行排序或数量限定。
6,order by子句中的排序字段应该使用第一个查询中的字段名,如果有别名就必须使用别名。
7,可见,假设:
查询1有n1行,m列;
查询2有n2行,m列;
则两个表“联合”之后的结果,有最多n1+n2行,m列。

//联合查询示例:
select * from join1
union
select * from join2;
13.mysql联合(union)查询 概念 语法
select id, f2 from join1
union
select id2,c2 from join2;
13.mysql联合(union)查询 概念 语法
-- 演示“不消除重复行”的情形:
 select f1 from join1
union all
select c1 from join2;
13.mysql联合(union)查询 概念 语法
select id, f2 from join1
union
select id2,c2 from join2
order by id desc
limit 0,4;
13.mysql联合(union)查询 概念 语法
weinxin
加我微信
微信扫一扫,加我微信好友,共同交流,共同进步! (备注:焦国强博客)
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: