前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据-Hive联表语句

大数据-Hive联表语句

作者头像
cwl_java
发布2019-12-26 16:02:59
6690
发布2019-12-26 16:02:59
举报
文章被收录于专栏:cwl_Java

2.9. JOIN 语句

2.9.1. 等值 JOIN

Hive支持通常的SQL JOIN语句,但是只支持等值连接,不支持非等值连接。

案例操作: 查询分数对应的姓名

代码语言:javascript
复制
SELECT s.s_id,s.s_score,stu.s_name,stu.s_birth FROM score s LEFT JOIN student stu ON s.s_id = stu.s_ **
2.9.2. 表的别名
  • 好处
    • 使用别名可以简化查询。
    • 使用表名前缀可以提高执行效率。
  • 案例实操:合并老师与课程表
代码语言:javascript
复制
select * from techer t join course c on t.t_id = c.t_id;
2.9.3. 内连接

内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。

代码语言:javascript
复制
select * from techer t inner join course c on t.t_id = c.t_id;
2.9.4. 左外连接

左外连接:JOIN操作符左边表中符合WHERE子句的所有记录将会被返回。 查询老师对应的课程

代码语言:javascript
复制
select * from techer t left join course c on t.t_id = c.t_id;
2.9.5. 右外连接

右外连接:JOIN操作符右边表中符合WHERE子句的所有记录将会被返回。

代码语言:javascript
复制
select * from teacher t right join course c on t.t_id = c.t_id;
2.9.6. 多表连接

注意:连接 n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。 多表连接查询,查询老师对应的课程,以及对应的分数,对应的学生

代码语言:javascript
复制
select * from teacher t 
left join course c on t.t_id = c.t_id 
left join score s on s.c_id = c.c_id 
left join student stu on s.s_id = stu.s_id;

大多数情况下,Hive会对每对JOIN连接对象启动一个MapReduce任务。本例中会首先启动一个MapReduce job对表 techer和表course进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表score;进行连 接操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.9. JOIN 语句
    • 2.9.1. 等值 JOIN
      • 2.9.2. 表的别名
        • 2.9.3. 内连接
          • 2.9.4. 左外连接
            • 2.9.5. 右外连接
              • 2.9.6. 多表连接
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档