Hive 连接查询操作(不支持IN查询)
2017-04-11 11:49
344 查看
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
相关文章推荐
- 数据记录的操作(insert,select,update,delete)函数和分组查询(group by),表连接(join on),嵌套查询(in)
- SQL语句,多表查询,连接查询,嵌套查询,集合操作,有IN谓词,有比较运算符,有ANY\EXIST谓词的查询
- Hive连接MYSQL数据OK,查询出现in thread "Thread-18" java.lang.IllegalArgumentException:Does not contain a vali
- ADO.NET分页封装[支持多表连接查询分页]-代码实现-关键代码下载
- JDBC连接Oracle数据库,以及基本的插入查询操作
- 学习python 第三季:编写简单简单连接数据库并执行查询操作
- C#(.NET)数据访问连接、查询、插入等操作的封装类
- 一个C#(.NET)数据访问连接、查询、插入等操作的封装类
- asp下用OracleInProcServer完成对Oracle的连接和操作
- MySQL查询in操作 查询结果按in集合顺序显示
- 在SQL Server 2005中连接Oracle,完成查询、插入操作
- 数据库效率 in是把外部和内表进行hash连接 exists是对外表做loop循环,然后每次loop循环再对内部进行查询
- 数据库的相关操作:如连接、查询、添加、删除、修改、分页显示
- php连接hive执行sql查询
- java 通过jdbc驱动连接hive操作
- 关于hibernate查询时出现: 只进 ResultSet 不支持请求的操作
- C#(.NET)数据访问连接、查询、插入等操作的封装类
- SqlTest.java 连接数据库后做查询操作
- Asp.Net连接Oracle数据库的通用类orahelper.cs并且利用它对数据库查询、汇总、更新等操作演示
- Linq to SQL 语法查询....子查询 & in操作 & join