Hive复杂查询

本文介绍了Hive中的连接查询类型,包括内连接、左连接、右连接、左半连接和全连接,以及它们的概念和特点。此外,文章讨论了Hive不支持的in/exists操作以及其高效实现——左半连接。还提到了Hive的数据类型,包括原子类型与复杂类型如ARRAY、MAP和STRUCT,并解释了它们的使用场景和访问方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接查询,只支持等值链接

  • 内连接
select * from t_a a inner join t_b b on a.id=b.id;

概念:将符合两边连接条件的数据查询出来

  • 左连接
select * from t_a a left join t_b b on a.id=b.id;

概念:
1.以左表数据为匹配标准
2.匹配不上的右边表数据显示为null
3.返回的数据条数与左表相同

  • 右连接
select * from t_a a right join t_b b on a.id=b.id;

概念:
1.以右表数据为匹配标准
2.匹配不上的左边表数据显示为null
3.返回的数据条数与右表相同

  • 左半连接
select * from t_a a right join t_b b on a.id=b.id;

概念:
因为hive不支持in/exists操作(1.2.1版本的hive开始支持in的操作),所以用该操作实现,并且是in/exists的高效实现

  • 全连接
select * from t_a a full join t_b b on a.id=b.id;

概念:
全连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一边表数据显示为null。如果表之间有匹配行,则整个结果集行包含基表的数据值

  • in关键字
sele
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值