Как я могу объединиться в куст с типом данных массива? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть таблица сотрудников, в которой идентификатор сотрудника указан как int, имя сотрудника - как строка, а идентификатор отдела - как массив целочисленных данных в виде столбцов.Ниже приведены записи для таблицы Employee.

employee5.empid employee5.empname       employee5.deptid
1       Emp1    [2,3,1,4]
2       Emp2    [5,2,3,4]
3       Emp3    [1,4,2,3]
4       Emp4    [5,3,4,1]
5       Emp5    [1,2,3,4]
6       Emp6    [5,3,1,2]
7       Emp7    [3,2,4,5]
8       Emp8    [1,4,2,3]
9       Emp9    [5,2,3,1]
10      Emp10   [2,4,3,5]

У меня также есть таблица отделов с идентификатором отдела как int, именем отдела в виде строки и расположением отдела в виде строковых столбцов.Ниже приведены записи для таблицы отделов.

department.deptid       department.deptname     department.location
1       IT      Delhi
2       Support Bangalore
3       HR      Pune
4       Finance Mumbai
5       Call Center     Mysore

Поскольку я новичок в улье, пожалуйста, помогите мне отобразить имя сотрудника и его соответствующий отдел с помощью соединения улья. Заранее спасибо.

1 Ответ

0 голосов
/ 06 марта 2019

Я не проверял, однако, это может работать.

Во-первых, вам нужно разбить массив на несколько строк, а затем нужно объединить, я не думаю, что это прямой способ объединения.

select * from   
    (select empid, empname, dept_id from employee5 lateral view explode(deptid) d as dept_id) emp 
    join 
    department
    on 
    department. deptid = emp.dept_id
...