Potrzebuję pobrać dane z dwóch tabel z wyniku uzyskanego z klauzuli unii i do wyniku mam jeszcze jedną, w której dodano klauzulę

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

Otrzymuję ten błąd. tutaj wprowadź opis obrazu

-2
gudisa veneeth 30 marzec 2020, 19:41

2 odpowiedzi

Najlepsza odpowiedź

a nie jest zdefiniowany w zewnętrznym zapytaniu. t to:

where t.empid = 1;
1
Gordon Linoff 30 marzec 2020, 16:43

To UNION nie zrobi tego, co chcesz, ponieważ mieszasz różne kolumny.
W Twoim przypadku wynikiem zapytania będą 2 wiersze, gdzie w pierwszym wierszu będzie identyfikator pracownika i dział, aw drugim identyfikator i nazwisko pracownika.
Potrzebujesz dołączenia:

select e.empid, e.department, d.empname 
from EMPLOYEE e inner join employeedetails d
on d.empid = e.empid
where e.empid = 1
0
forpas 30 marzec 2020, 16:59