`
superlxw1234
  • 浏览: 550779 次
  • 性别: Icon_minigender_1
  • 来自: 西安
博客专栏
Bd1c0a0c-379a-31a8-a3b1-e6401e2f1523
Hive入门
浏览量:44355
社区版块
存档分类
最新评论

hive左外关联(left outer join)中主从表的过滤条件

    博客分类:
  • hive
阅读更多
select a.sdid,b.cookie_id
from   lxw_t2 a
left outer join lxw_t1 b 
on (a.sdid = b.cookie_id and a.pt = '2012-11-22');

 

如果把主表a的过滤条件写在on后面,则会先关联,在关联之后的结果上再过滤。

 

select a.cookie_id,b.sdid
from   lxw_t1 a
left outer join lxw_t2 b 
on (a.cookie_id = b.sdid and b.pt = '2012-11-22');

 

但如果是从表的过滤条件,则会先过滤,再关联。

 

 

特别要注意的是,如果是需要对主表过滤之后再和从表做左关联,最好将主表写成子查询的形式:

 

select a.sdid,b.cookie_id
from   (select * from lxw_t2 where pt = '2012-11-22') a
left outer join lxw_t1 b 
on (a.sdid = b.cookie_id);
 

 

 

分享到:
评论

相关推荐

    hive sql + left join 数据缺失

    随着Hive版本的不断更新,部分用户在升级至Hive 3之后遇到了数据处理中的一个常见问题——在执行Left Join操作时出现数据缺失。 #### 二、问题复现 问题发生在如下的SQL语句中: ```sql SELECT a.* FROM ( SELECT ...

    SQL left join

    SQL Left Join也称为左外连接,它可以将左表中的所有记录与右表中的记录进行组合,返回左表中的所有记录和右表中符合条件的记录。如果右表中没有符合条件的记录,将返回NULL。 Left Join的基本语法为: ```sql ...

    Hive查询sql left join exists

    首先,LEFT JOIN(左外连接)是连接两个表的一种方式,返回所有左表(在FROM子句中指定的第一个表)的记录,即使在右表中没有匹配的记录。未找到匹配的记录将用NULL填充右表的所有列。在上述例子中,如果要找出CS-1...

    Hive-Summit-2011-join.zip_hive

    1. **Hive Join操作**:Hive支持多种类型的Join,包括内连接(Inner Join)、左连接(Left Outer Join)、右连接(Right Outer Join)、全连接(Full Outer Join)以及自连接(Self Join)。在处理大数据时,选择...

    Hive优化方法整理

    3. 解决方法 2:赋与空值分新的 key 值,使用 left outer join 语句进行关联。 处理不同数据类型关联产生的数据倾斜 1. 对于用户表中 user_id 字段为 int,log 表中 user_id 字段既有 string 类型也有 int 类型。 ...

    大数据工具之HIVE外键及多表关联的介绍.zip

    大数据工具之HIVE外键及多表关联的介绍.zip

    Hive Summit 2011-join

    Hive Summit 2011-join介绍了Facebook中Hive实现的多种join策略。Hive作为一个数据仓库工具,主要用于处理大规模数据集的分析和查询,而join操作是数据仓库中常见且关键的操作之一。在大数据的背景下,如何高效地...

    hive操作实战

    **左外连接(`LEFT OUTER JOIN`)** ``` SELECT stu.name, stu.id, course.courseName FROM stu LEFT OUTER JOIN course ON stu.id = course.id; ``` **解析** 左外连接返回的是左表中的所有记录以及右表中匹配...

    Hive基本命令整理

    下面是 Hive 中的一些基本命令整理,涵盖了表的创建、加载数据、查看结构信息、更新表名、添加新列、删除表、加载本地文件数据、显示所有函数、查看函数用法、查看数组、map、结构、内连接、外连接、in 查询等方面。...

    hive优化(ppt)

    在Hive中,通过使用`LEFT SEMI JOIN`而非`LEFT OUTER JOIN`,可以在不包含NULL值的情况下快速找到匹配项,从而减少数据传输和处理的时间,特别是在处理大规模数据集时效果显著。 ### 存储格式和压缩 存储格式和...

    Hive表生成工具,Hive表生成工具Hive表生成工具

    Hive表生成工具,Hive表生成工具Hive表生成工具

    部分普通sql查询在hive中的实现方式

    - **解释**:`LEFT SEMI JOIN`返回左表中所有出现在右表中的记录。这正好可以用来模拟`IN`关键字的功能。 #### 3. 子查询只支持在`FROM`关键字里 - **背景**:Hive不支持在`SELECT`子句中直接使用子查询。 - **...

    01.hive查询语法--基本查询--条件查询--关联查询.mp4

    01.hive查询语法--基本查询--条件查询--关联查询.mp4

    Apache Hive面试题

    2. **左外关联(LEFT [OUTER] JOIN)**: - **功能**:以左侧表作为主表,返回所有左侧表的记录,并尝试与其他表关联,未匹配到的右侧表字段填充为NULL。 3. **右外关联(RIGHT [OUTER] JOIN)**: - **功能**:...

    hive练习数据和练习题及答案

    hive练习数据和hive练习题包含了hive练习数据,hive数据的建表ddl和hive练习题,非常...LEFT,RIGHT 和 FULL OUTER JOIN LEFT SEMI JOIN Hive当前没有实现 IN/EXISTS 子查询,可以用 LEFT SEMI JOIN 重写子查询语句。

    hive 表结构导出

    支持hive 源数据、表结构导出

    快捷删除hive表的工具

    在IT行业中,尤其是在大数据处理领域,Hive是一个广泛使用的数据仓库工具,它允许用户通过SQL-like查询语言(HQL)来处理存储在分布式文件系统中的大规模数据。然而,当面对大量不再需要的Hive表时,手动删除不仅...

    SparkSQL相关语句总结.docx

    Left Outer Join 用于以左表驱动,右表不存在的 key 均赋值为 null;Right Outer Join 用于以右表驱动,左表不存在的 key 均赋值为 null;Full Outer Join 用于全表关联,将两表完整的进行笛卡尔积操作,左右表均可...

    hive关联MongoDB

    比如设置`hive.optimize.ppd`为false,这一操作是为了禁止谓词下推(Predicate Pushdown),这是因为当使用where条件过滤时,启用谓词下推可能会导致错误。另一个重要的配置项是设置`mongo.input.split_size`,即...

    Hive基本操作命令大全

    * 外连接:`SELECT sales.*, things.* FROM sales LEFT OUTER JOIN things ON (sales.id = things.id);` * in 查询:`SELECT * FROM things LEFT SEMI JOIN sales ON (sales.id = things.id);` * Map 连接:`SELECT ...

Global site tag (gtag.js) - Google Analytics