无法获取数据,在where子句中使用union子句的结果

时间:2020-03-30 16:41:26

标签: sql oracle

我需要从我从union子句获得的结果中获取两个表的数据,并向结果中再添加一个where子句

select * from (select a.empid,a.department from EMPLOYEE a
union
select b.empid,b.empname from employeedetails b) t where  a.empid=1;

我遇到此错误。enter image description here

2 个答案:

答案 0 :(得分:1)

a未在外部查询中定义。 t是:

where t.empid = 1;

答案 1 :(得分:0)

UNION不会执行您想要的操作,因为您要混合使用不同的列。
在您的情况下,您的查询结果将是2行,其中在第一行中将具有员工的ID和部门,在第二行中将具有员工的ID和名称。
您需要的是联接:

select e.empid, e.department, d.empname 
from EMPLOYEE e inner join employeedetails d
on d.empid = e.empid
where e.empid = 1