2017-01-22 8 views
1

У меня есть следующая таблица Emp в улье, состоящая из сотрудника вместе со своим Супервизором конкретной компании. Поскольку мы знаем, что Супервизор также является сотрудником, и даже над ним надзиратель.Hive inested query

employee,Supervisor 
a,b 
b,c 
c,d 
d,e 

мне нужно написать улей запрос, чтобы выяснить, руководитель работника (а) то есть (б) и руководитель (б) (т.е. с). Я попытался использовать следующий запрос, но это ошибка throw.

select * 
from Emp 
where employee = (select Supervisor from Emp where employee = "a"); 

Может кто-нибудь помочь мне с этим

+0

Какая ошибка возвращается к запросу? –

ответ

1

я ожидал бы этот запрос работать: (. Только реальные изменения являются одинарные кавычки для строковой константы)

select e.* 
from Emp e 
where e.employee = (select e2.Supervisor from Emp e2 where e2.employee = 'a'); 

Если у нас есть ограничение на подзапросы в предложении WHERE, просто используйте JOIN:

select s.* 
from Emp s join 
    Emp e 
    on s.employee = e.supervisor 
where e.employee = 'a';