Hive 連線查詢操作(不支援IN查詢)

2021-07-30 09:24:10 字數 2039 閱讀 4450

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 '|';

測試表a中資料如下:

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

測試表b中資料如下:

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

測試表b中分割槽資料如下:

hive> select * from b where day='01';

ok 130 a 01

131 b 01

132 c 01

time taken: 0.359 seconds

測試表b中分割槽資料如下:

hive> select * from b where day='02';

ok 133 02

134 02

135 02

time taken: 0.187 seconds

測試語句如下:

1.左連線不指定條件

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

2.左連線指定連線條件(on中)

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

3.左連線指定連線條件(on外)

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

Hive的on不支援非等值連線解決,不支援or

oracle select a.b.id asb id,b.class as b class from lpx test a a left outer join lpx test b b on a.id b.id and a.class b.class 連線條件的第二個是非等值的,不能照搬上面 hi...

mysql不支援 MySQL不支援的特性

mysql 1 不支援物化檢視。2 不支援位圖索引。3 不支援並行查詢。4 不支援雜湊關聯,mysql的所有關聯都是巢狀迴圈關聯。不過,可以通過建立乙個雜湊索引來曲線實現。5 不允許對同一表同時進行查詢和更新。報錯 update tb1 as outer tb1 set cnt select cou...

關於hive中not in不支援子查詢的解決方法

表資訊 使用者user表 userid,name 黑名單banuser表 userid,name 問題 找出不在黑名單中的使用者資訊 userid,name hive暫時不支援以下查詢方式 select aa.from user aa where aa.user not in select a.us...