博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive总结(六)表的三种连接方式
阅读量:4230 次
发布时间:2019-05-26

本文共 1713 字,大约阅读时间需要 5 分钟。

0.数据源

hive> SELECT * FROM test;      id_name9   Nermaer31  JiaJia10  Messi16  Santi6   Tian21  Pirlohive> SELECT * FROM test_name;      26  Santi26  Tian99  xiaozha99

1内连接

SELECE a.,b.

FROM a JOIN b ON(a.xx=b.xx)
hive只支持等值连接,这意味着连接的谓语条件只能使用等号。

hive> SELECT test.* ,test_name.*    > FROM test JOIN test_name ON(test.name=test_name.name);16  Santi   26  Santi6   Tian    26  Tian

用EXPLAIN来查看hive为整个查询使用了多少个mapreduce

EXPLAIN EXTENDED 能够查看更多的详细信息。
[注意]
Hive会智能的选取最少的mapreduce执行操作。
HIve只允许在FROM子句中出现一张表,要进行连接操作,必须执行JOIN操作.
也不支持mysql在from语句中写出表,在where语句中指出条件。
如下:不支持一下语句。

select test.*,test_name.*from test,test_namewhere test.id=test_name.xx;

2外连接

内连接只显示了俩张表都存在的数据,而外连接则是显示出所有的数据

其中左连接是左外边的表输出完整数据。右外连接是右边的表输出完整数据,全外连接就是两张表的所有行全部输出。
(1)左外连接 LEAF OUTER JOIN

hive> SELECT test.*,test_name.*> FROM test LEFT OUTER JOIN test_name ON(test.name=test_name.name);9   Nermaer NULL    NULL31  JiaJia  NULL    NULL10  Messi   NULL    NULL16  Santi   26      Santi6   Tian        26      Tian21  Pirlo       NULL    NULL

(2)右外连接

hive> SELECT test.*,test_name.*    > FROM test RIGHT OUTER JOIN test_name ON(test.name=test_name.name);16      Santi   26  Santi6       Tian        26  TianNULL    NULL    99  xiaozha99

(3)全外连接

hive> SELECT test.*,test_name.*    > FROM test FULL OUTER JOIN test_name ON(test.name=test_name.name);31      JiaJia  NULL    NULL10      Messi   NULL    NULL    9       Nermaer NULL    NULL21      Pirlo       NULL    NULL16      Santi   26      Santi6       Tian        26      TianNULL    NULL    99      xiaozha99

3半连接

*SELECT FROM a

WHERE a.xxx IN (SELECT xxx FROM b )**
可以查A表中的某列在B表中出现的值,其实和内连接的效果一样,只不过使用IN查询。

hive> SELECT * FROM test> WHERE test.name IN (SELECT name FROM test_name);16  Santi6   Tian

转载地址:http://joiqi.baihongyu.com/

你可能感兴趣的文章
C++递归算法案例
查看>>
C++算法——异或运算解决出现次数问题
查看>>
C++数据结构——顺序栈(基本代码实现与案例)
查看>>
C++数据结构——链队列(基本代码实现与案例)
查看>>
C++数据结构——顺序表的查找(简单顺序查找、有序表的二分查找、索引顺序的查找)
查看>>
Hive 常用统计查询语句
查看>>
对象存储产生背景、发展历史、原理架构、优缺点、应用场景及开源项目对比
查看>>
Apache Ozone 分布式对象存储系统相关文档汇总
查看>>
Ozone 与 HDDS 的区别与联系
查看>>
maven失败测试用例rerun插件使用方法
查看>>
Python基础(三)
查看>>
Python入门NLP(二)
查看>>
四行Python代码,你也能从图片上识别文字!
查看>>
内网映射外网工具-ngrok
查看>>
Python带你朗读网页
查看>>
关于python,这些知识点你学会了吗?
查看>>
利用selenium爬取《西虹市首富影评》
查看>>
Python验证码识别
查看>>
机器学习、NLP和Python教程分享
查看>>
AWS Serverless培训分享
查看>>