当前位置: 代码迷 >> Sql Server >> full jion 跟 union 的详细区别
  详细解决方案

full jion 跟 union 的详细区别

热度:671   发布时间:2016-04-27 11:23:48.0
full jion 和 union 的详细区别
感觉 FULL JOIN 和 UNION 除了使用条件不同(UNION 要求使用的2个表字段相同),返回的结果格式不同(FULL JOIN 不会把相同的字段值合并到一个字段内),其他还有什么区别吗,(一直感觉如果在字段相同的情况下,结果的格式简单处理下后,这两个语句返回的结果是一样的。),想看下大家对这个有什么理解,和更多的不同之处,尽量详细一点,谢谢。

------解决方案--------------------
当然结果不同了
union会把table本身重复的也干掉
full join不会


------解决方案--------------------
最通俗的说法就~一个为合并列~一个行集合并
------解决方案--------------------
union:行集合并
full join:列合并,两张表的数据会全部出来(不管满不满足条件)
------解决方案--------------------
SQL code
------------------------------ Author  :fredrickhu(小F,向高手学习)-- Date    :2011-04-06 09:47:40-- Verstion:--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) --    Jul  9 2008 14:43:34 --    Copyright (c) 1988-2008 Microsoft Corporation--    Enterprise Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)--------------------------------> 测试数据:[a]if object_id('[a]') is not null drop table [a]go create table [a]([a] int,[b] int)insert [a]select 1,4 union allselect 2,5 union allselect 3,6--> 测试数据:[b]if object_id('[b]') is not null drop table [b]go create table [b]([a] int,[b] int)insert [b]select 2,5 union allselect 3,6 union allselect 4,7--------------开始查询--------------------------select * from [a] full join b on a.a=b.aselect * from aunion allselect * from b----------------结果----------------------------/* a    b    a    b1    4    NULL    NULL2    5    2    53    6    3    6NULL    NULL    4    7a    b1    42    53    62    53    64    7*/
------解决方案--------------------
探讨
union:行集合并
full join:列合并,两张表的数据会全部出来(不管满不满足条件)

------解决方案--------------------
union会重复的值删除
full join不删除重复值

------解决方案--------------------
union all 不会干掉重复记录,只有union才会干掉。
------解决方案--------------------
探讨
当然结果不同了
union会把table本身重复的也干掉
full join不会

------解决方案--------------------
探讨
最通俗的说法就~一个为合并列~一个行集合并
  相关解决方案