union all和union的用法 hive union all用法
union all和union都 可以把两张表连起来,union 会排除重复的记录union all 不会排除重复的记录 。不同于join,join为笛卡儿积。
tab1
字段
aID
bID
tab2
字段
aID
bID
tab1中有记录:
aID bID
as1 19
as2 19
as3 23
as4 45
tab2中有记录:
aID bID
as2 19
as3 19
as4 19
现在需要查找出两张表中bID相等的且bID=19的记录,应该是5条记录
我用的方法是:
方法1:select tab1.aID,tab2.aID from tab1,tab2 where tab1.bID=tab2.bID and tab2.bID=19
方法2:select tab1.aID,tab2.aID from tab1 join tab2 on tab1.bID=tab2.bID where tab1.bID=19
上面两中方法选出的记录都是6条,为什么出这样的问题,应该怎么做呢?
---------------------------------------------------------------
select * form tab1 where bID=19
union all
select * form tab2 where bID=19
---------------------------------------------------------------
create table tab1
(aID char(10),
bID char(10))
go
insert into tab1(aid,bid) values(‘as1‘,‘19‘)
insert tab1 values(‘as2‘,‘19‘)
insert tab1 values(‘as3‘,‘38‘)
insert tab1 values(‘as4‘,‘45‘)
go
create table tab2
(aID char(10),
bID char(10))
go
go
insert tab2 values(‘as2‘,‘19‘)
insert tab2 values(‘as3‘,‘19‘)
insert tab2 values(‘as4‘,‘19‘)
go
select * from tab1
select * from tab1 where tab1.bid=‘19‘union all select * from tab2 where tab2.bid=‘19‘
斑竹加的话:
1、join 产生的是笛卡尔积。
2、union 会排除重复的记录
3、union all 不会排除重复的记录记录
更多阅读
matlab中fprintf和disp的用法 matlab disp fprintf
matlab中fprintf 和disp的用法>> disp('pi=',pi)??? Error using==> dispToo many inputarguments.>> disp(sprintf('圆周率pi= %8.5f',pi))
whichever和nomatterwhich的用法区别 which whichever
合在一起写的如whichever等与分开写的如No matter which等既可以引导名词性从句,也可以引导让步状语从句,而引导名词性从句时只能用whichever等这种和在一起写的连词了.如:Whichever breaks laws will be punished .=No matter whic
cisco ios 升级方法和TFTP的用法 cisco ap ios升级
cisco ios 升级方法和TFTP的用法升级方法:现总结归纳出CISCO路由器IOS映像升级的几种方法,供广大网络爱好者或同仁参考。在介绍CISCO路由器IOS升级方法前,有必要对Cisco路由器的存
廉颇蔺相如列传中而和以的用法1 廉颇蔺相如列传原文
“而”作为连词的用法和例句:⒈表示并列关系,所连两项在意思上不分主次、轻重,而是并列、并重的关系,可译为“和”、“及”、“又”、“并且”或不译。例如:《两小儿辩日》:“此不为远者小而近者大乎”[译]:“这不是远的小近的大吗?”⒉表
fairly和rather的用法比较 would rather的用法
fairly和rather的用法是高中阶段比较难掌握的用法,原因在于rather和fairly的区别很多,很细,但是在我们的日常交际中却不常见,09年的高考题也只涉及到2个单项【2009年天津卷】Itwas a nice house,