目录

一、建表数据准备

二、语法

三、left semi join例子

四、left semi join、join、left join的区别

1、left semi join

2、left join

3、join

结语


一、建表数据准备

参考hive之full outer join(全连接)使用方法_IMezZ的博客-CSDN博客目录介绍语法例子创建顾客表:customers创建订单表:ordersfull outer join语句 left join + union + right join语句介绍full outer join结合了 LEFT JOIN 和 RIGHT JOIN 的结果,并使用NULL值作为两侧缺失匹配结果。语法SELECT table1.column_name(s),table2.column_name(s) FROM table1 ..https://blog.csdn.net/qq_36249352/article/details/124017263?spm=1001.2014.3001.5502

二、语法

left semi join只能查询左表字段,不能查询右表字段。

SELECT 
    table1.column_name(s) 
FROM table1 
    left semi join table2 
ON table1.column_name = table2.column_name;

相当于

SELECT 
    table1.column_name(s) 
FROM table1 where table1.column_name in
(select table2.column_name from table2);

三、left semi join例子

select a.customer_id,a.customer_name from default.customers a
left semi join default.orders b
on a.customer_id=b.customer_id

相当于

select a.customer_id,a.customer_name 
from default.customers a where a.customer_id in
(slect b.customer_id from default.orders b)

两者区别是:

LEFT SEMI JOIN 的限制是,右侧表只能在连接条件(ON 子句)中引用,而不能在 WHERE 或 SELECT 子句等中引用。

结果 

四、left semi join、join、left join的区别

1、left semi join

left semi join只能查询左表字段,不能查询右表字段。left semi join只能展示两个表能够关联上的数据。

当查询右表字段时,会报如下错误:

select a.customer_id,a.customer_name,b.order_date from default.customers a
left semi join default.orders b
on a.customer_id=b.customer_id

2、left join

 left join可以查询右表字段,不会报错。left join会展示左表想要查询的所有数据,不止能展示关联上的,不能关联上的也能展示。

select a.customer_id,a.customer_name,b.order_date from default.customers a
left join default.orders b
on a.customer_id=b.customer_id

 结果

3、join

join可以查询右表字段,不会报错。join只会展示能关联上的数据,不能关联上的不能展示。

select a.customer_id,a.customer_name,b.order_date from default.customers a
join default.orders b
on a.customer_id=b.customer_id

结果 

 此时,如果不需要查询右表字段时和left semi join是一致的。


结语

         本次的分享就到这里了,下一篇博客博主将带来hive之Map Join使用方法,敬请期待!受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐