1.每个join都会启动一个mapreduce
如果连接字段是同一个字段,则会进入同一个reduce
2.hive会默认最后一个表为数据量最大的表,所以会将前面的表进行缓存
所以进行连接查询的时候,将表从小到大连接
3.如果查询中不想将大表放到最后,可以使用查询暗示,指定哪张表示最大的
select /* +streamtable(c) */ c.id,c.name
from custorm c join order o on o.cid=c.id
内连接
直接join,只有复核连接条件的才会被查询出
左外连接
left outer join,左边的记录会全部显示
右外连接
right outer join 右边的记录会全部显示
全外连接
full outer join 笛卡尔积
左半连接
只要右表有符合条件的数据,就会返回左边的数据&#x