hive中使用join时候on条件
1、如果
select * from a
left join b
on(a.字段=b.字段)
正常
2、如果
select * from a
left join b
on(a.字段=b.字段,b.字段=某值,b.……)
正常
3、如果
select * from a
left join b
on(a.字段=b.字段,a.字段=某值,a.……)
工作正常该查询中a.字段=某值不能正常工作
4、上面查询中使用left join 但是使用join如
select * from a
join b
on(a.字段=b.字段,a.字段=某值,a.……)
工作正常。也就是说on条件在join查询中的所有限制都正常工作
不管是a表或者b表的条件!
5. 内连接:inner join
--join优化:在进行join的时候,大表放在最后面
--但是使用 /*+streamtable(大表名称)*/ 来标记大表,
那么大表放在什么位置都行了
select /*+streamtable(s)*/ s.ymd,d.dividend
from stocks s inner join dividends d on s.ymd=d.ymd and
s.symbol=d.symbol
where s.symbol=’aapl’
2. 外连接:left outer join,right outer join,full outer join