简体   繁体   中英

Hive SQL + FROM not in to JOIN

I have a query with NOT IN clause,need to convert into join statement.

SELECT EMP_NBR 
FROM employees not in (select emp_id from departments where dept_id = 10 and division = 'sales')

not in could be mimicked in SQL using just not in the where clause, eg

SELECT EMP_NBR FROM employees inner join department on
employees.emp_id =departments.emp_id
where  (dept_id = 10 and division = 'sales')

I think the proper transformation would be a left join :

select EMP_NBR 
from employees e join
     departments d
     on e.dept_id = d.dept_id and 
        d.dept_id = 10 and
        d.division = 'sales'
where d.dept_id is null;

Note: I added what I consider to be correct JOIN conditions.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM