1、join:多表

 

2、emp员工表、dept部门表

(1)部门编号

(2)部门名称

(3)部门所在地

[hadoop@hadoop000 data]$ cat dept.txt 
10    ACCOUNTING    NEW YORK
20    RESEARCH    DALLAS
30    SALES    CHICAGO
40    OPERATIONS    BOSTON

 

3、加载数据到dept部门表中

(1)表成功创建好之后,在Hadoop上的默认路基是:/user/hive/warehouse/dept下面

hive (testzhang_db)> CREATE TABLE dept(
                   > deptno int,
                   > dname string,
                   > loc string
                   > ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

hive (testzhang_db)> LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' OVERWRITE INTO TABLE dept;

hive (testzhang_db)> select * from dept;
OK
10	ACCOUNTING	NEW YORK
20	RESEARCH	DALLAS
30	SALES	CHICAGO
40	OPERATIONS	BOSTON

  

4、关联关系

在testzhang_db下已创建并加载好两张表:emp员工表、dept部门表

两张表的关联关系:是通过dept部门表中的 部门编号,和emp员工表中的部门编号,进行关联的。

 

5、做查询

(1)e为emp的别名,d为dept的别名

(2)on为条件

(3)一个SQL把两个表关联起来了

hive (testzhang_db)> select
                   > e.empno,e.ename,e.sal,e.deptno,d.dname
                   > from emp e join dept d
                   > on e.deptno=d.deptno;