走近大数据之Hive进阶(四、Hive的表连接)
HIVE表连接(转换成mapreduce作业,提交到hadoop上)
一、Hive等值连接和不等值连接
等值连接(连接条件中为等号):
select e.empno, e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;
等值连接(条件中是不等号:>, <, !=):
between and //含有边界,并且小值在前,大值在后 select e.empno,e.ename,e.sal,s.grade from emp e,salgrade s where e.sal between 2000 and 8000;
二、Hive外连接
外连接: (在select语句中,所有没有包含在聚合函数中的列,都必须要出现在grouop by 子句的后面)
外连接(左外连接,右外连接)
左外连接(当我们的连接条件不成立时,连接条件的左边的表依然可以包含在结果中)
右外连接(当我们的连接条件不成立时,连接条件的右边的表依然可以包含在结果中)
//右外接 select d.deptno,d.dname,count(e.empno) from emp e right outer jion dept d on (e.deptno=d.deptno) group by d.deptno, d.dname;
三、Hive的表连接
自连接(自己和自己连接)
(自连接的核心:通过表的别名将一张表视为多张表)
select e.ename,b.ename from emp e,emp b where e.mgr=b.empno;//mgr是员工上级领导的编号,empno是员工的编号(都是公司员工)