首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spark SQL 条件在inner join 和 where 的区别?

Spark SQL 条件在inner join 和 where 的区别?

提问于 2019-07-06 05:49:07
回答 0关注 0查看 773

有三段语句:

第一段:

select

t1.id, t1.name, t2.sub_id, sum(t2.amount) as t_amount

from t1 inner join t2

on t1.id = t2.id and t1.dt between '20190701' and '20190705' and t2.dt = '20190705'

第二段:

select

t1.id, t1.name, t2.sub_id, sum(t2.amount) as t_amount

from t1 inner join t2

on t1.id = t2.id

where t1.dt between '20190701' and '20190705' and t2.dt = '20190705'

第三段:

select

s1.id, s1.name, s2.sub_id, sum(s2.amount) as t_amount

from (select id, name from t1 where dt between '20190701' and '20190705'

)s1

inner join (select t2.id,t2.sub_id,t2.amount from t2)s2

on s1.id = s2.id

这三段语句在spark sql中执行性能的区别是什么

回答

成为首答用户。去 写回答
相关文章
left join-on-and 与 left join-on-where 和 inner join on 加条件和where加条件的区别
在多表查询时,on 比 where 更早起作用。系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由 where 进行过滤,然后再计算,计算完后再由 having 进行过滤。由此可见,要想过滤条件起到正确的作用,首先要明白这个条件应该在什么时候起作用,然后再决定放在那里。
botkenni
2023/05/23
3.4K0
left join-on-and 与 left join-on-where 和 inner join on 加条件和where加条件的区别
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
  今天主要的内容是要讲解SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别和用法,不用我说其实前面的这些基本SQL语法各位攻城狮基本上都用过。但是往往我们可能用的比较多的也就是左右连接和内连接了,而且对于许多初学者而言不知道什么时候该用哪种语法进行查询,并且对于左右,或者内连接查询的时候关于ON 和Where 的作用也是模糊不清的,说不出其中的一个大概的差别,因此接下来请容我把它们好好描述一遍。
追逐时光者
2019/08/28
14.7K1
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
SQL中JOIN时条件放在Where和On的区别
SQL中JOIN子句是用于把来自两个或多个表的数据连接起来,在这个过程中可能会添加一些过滤条件。昨天有小伙伴问,如下图的这两种SQL写法查询结果是否会一样?(好像这是某一年阿里的面试题)
Python数据科学
2020/11/11
4.1K0
SQL中JOIN时条件放在Where和On的区别
sql join中on条件后接and和where
场景1:left join + on a.xx = b.xx and a.xx2 = 'aa'
不吃西红柿
2022/07/29
2.3K0
sql join中on条件后接and和where
sql之left join、right join、inner join的区别
Please refer the link : https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
Hongten
2018/09/13
2K0
sql之left join、right join、inner join的区别
sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: -------------------------------------------- 表A记录如下: aID     aNum 1     a20050111 2     a20050112 3     a20050113 4     a20050114 5 
学到老
2018/03/16
1.8K0
sql之left join、right join、inner join的区别
举例如下: -------------------------------------------- 表A记录如下: aID     aNum 1     a20050111 2     a20050112 3     a20050113 4     a20050114 5     a20050115
学到老
2019/02/13
2.3K0
sql之left join、right join、inner join的区别
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
PM吃瓜
2019/08/12
1.5K0
sql之left join、right join、inner join的区别
inner join和left join的区别
以左表为中心,返回左表中符合条件的所有记录以及右表中联结字段相等的记录——当右表中无相应联接记录时,返回空值。2、Right Join(右联接)
多凡
2019/11/01
17.1K0
sql中left join、right join、inner join区别
aID aNum 1     a0111 2     a0112 3     a0113 4     a0114 5     a0115
csxiaoyao
2019/02/18
2.1K0
LEFT JOIN条件在on后面和在where后面的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
赵哥窟
2023/05/27
4790
LEFT JOIN条件在on后面和在where后面的区别
sql语句中的left join,right join,inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: -------------------------------------------- 表A记录如下: aID     aNum 1     a20050111 2     a20050112 3     a20050113 4     a20
码农阿宇
2018/04/18
1.4K0
update inner join mysql where 链表更新
哎,考虑到自增id不容易用在分布复制中,手欠用UUID做了主键。而mysql好像没有uuid类型只能用字符串,感觉好不方便,后来看到tidb是支持自增id的,而且是分布式,于是决定换回自增id,这就有更新已有数据的guid对应的自增id的要求,记录一下语句。
xiny120
2019/06/22
1.9K0
sql中的过滤条件放在on和where的区别
最近遇到相关业务,想揪一下sql的中的left join 或者right join 或者inner join 中的 on和where的区别,想了解这个首先我们要了解两个基础的知识。
公众号-利志分享
2022/04/25
4.5K0
left join 、right join 、inner join之间的区别
left join(左联接) 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 right join(右联接) 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。 inner join(等值连接) 只返回两个表中联结字段相等的行(在表中存在至少一个匹配时,INNER JOIN 关键字返回行)
赵哥窟
2018/12/28
2K0
join和where区别以及各类join的示例
1 WHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接)WHERE和INNER JOIN产生的连接关系,没有本质区别,结果也一样。但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。   2无论怎么连接,都可以用join子句,但是连接同一个表的时候,注意要定义别名,否则产生错误!   a> inner join:理解为“有效连接”
java达人
2018/01/31
1.5K0
left join 过滤条件写在on后面和写在where 后面的区别
create table t1(id int, feild int); insert into t1 values(1 , 1); insert into t1 values(1 , 2); insert into t1 values(1 , 3); insert into t1 values(1 , 4); insert into t1 values(2 , 1); insert into t1 values(2 , 2); create table t2(id int, feild int); inse
java达人
2018/01/31
1.8K0
left/right join中on和where的区别
开发同学提了个问题,如下两种left join中on和where条件的写法是否等价?
bisal
2020/03/18
9150
点击加载更多

相似问题

"“INNER JOIN”和“OUTER JOIN”有什么区别?

2450

在JOIN子句和WHERE子句中添加条件之间有什么区别?

2293

在SQL中EXISTS和IN之间的区别?

2451

SQL Server中Groupby、How和WHERE子句的执行顺序是什么?

2442

spark sql报错了,本地没报错??

0701
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档