Hive 连接查询操作(不支持IN查询)

16 篇文章 1 订阅

CREATE EXTERNAL TABLE IF NOT EXISTS a(
telno STRING,
other STRING
)
PARTITIONED BY(day String)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';

CREATE EXTERNAL TABLE IF NOT EXISTS b(
telno STRING,
other STRING
)
PARTITIONED BY(day String)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';


[color=red][b]测试表a中数据如下:[/b][/color]
hive> select * from a;
OK
130 a 01
131 b 01
132 c 01
133 d 01
134 e 01
135 f 01
Time taken: 0.215 seconds

[color=red][b]测试表b中数据如下:[/b][/color]
hive> select * from b;
OK
130 a 01
131 b 01
132 c 01
133 02
134 02
135 02
Time taken: 0.281 seconds

[color=red][b]测试表b中分区数据如下: [/b][/color]
hive> select * from b where day='01';
OK
130 a 01
131 b 01
132 c 01
Time taken: 0.359 seconds

[color=red][b]测试表b中分区数据如下: [/b][/color]
hive> select * from b where day='02';
OK
133 02
134 02
135 02
Time taken: 0.187 seconds

测试语句如下:
[color=red][b]1.左连接不指定条件 [/b][/color]
hive> select a.telno,b.other,a.day,b.day from a left outer join b on(a.telno=b.telno) ;
OK
130 a 01 01
131 b 01 01
132 c 01 01
133 01 02
134 01 02
135 01 02
Time taken: 8.935 seconds

[color=red][b]2.左连接指定连接条件(on中) [/b][/color]
hive> select a.telno,b.telno,b.other,a.day,b.day from a left outer join b on(a.telno=b.telno and b.day='02');
OK
130 NULL NULL 01 NULL
131 NULL NULL 01 NULL
132 NULL NULL 01 NULL
133 133 01 02
134 134 01 02
135 135 01 02
Time taken: 12.624 seconds

[color=red][b]3.左连接指定连接条件(on外) [/b][/color]
hive> select a.telno,b.telno,b.other,a.day,b.day from a left outer join b on(a.telno=b.telno ) where b.day='02';
OK
133 133 01 02
134 134 01 02
135 135 01 02
Time taken: 8.88 seconds
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值