sql语句:union

 sql语句中,join,left join中,是将两个或多个表横向连接,而有时,我们需要将几个表或1个表纵向连接,甚至是连接自身,就比如,某些数据库脚本特别不合理的时候,但我们又不能说啥 。。。。郁闷 。。。。

最简单的示例:

select * from a union select * from b    

当然,要求a和b的列是一样的。。然后db会把两个表纵向连接,并去掉重复的行。。。

用union all 比单用union的效率要高一些。。。

来看一个比较实用的:

select * from test1 union all
select * from test2 t2
where not exists
(
      select * from 
      (select * from test1) t1 
      where t2.id = t1.id
)

这里,对某一列进行了限定,即合并时,t2中的某个字段,它的值如果在t1中该列出现,则忽略它。。。。

当然,我用的就是这个sql语句的衍生出的新sql语句。。。。

原文地址:https://www.cnblogs.com/hongmaju/p/4459129.html