Как использовать подзапросы в Oracle - PullRequest
0 голосов
/ 09 октября 2019

Здравствуйте. Я пытаюсь решить этот вопрос с помощью подзапроса:

Выберите имена, номер службы, рабочие места и зарплаты людей, работающих в том же городе, что и HAVET. (hast - это имя)

И у меня есть только две таблицы, первая - таблица emp со столбцом (noserv, name, job, salaries), а вторая - таблица SERV со столбцом (noserv, nameserv, city)

Я знаю, что должен использовать подзапрос, но не знаю, как это сделать.

Ответы [ 3 ]

1 голос
/ 09 октября 2019

Полупсевдокод (очевидно, CTE не будет работать).

with emp (noserv, name, job, salaries),
     serv (noserv, nameserv, city)
-- This is what you're looking for, I presume
select e.*
from emp e join serv s on e.noserv = s.noserv
where s.city = -- subquery returns city where HAVET lives
               (select s1.city 
                from serv s1 join emp e1 on e1.noserv = s1.noserv
                where e1.name = 'HAVET'
               );
1 голос
/ 09 октября 2019

Попробуйте это:

-- This is a normal query with a left join
select *
from emp e
left join s on e.noserv = s.noserv
where s.city = 

-- get Havet's city from the subquery.
(select s.city
from emp e
left join s on e.noserv = s.noserv
where e.name = 'HAVET') 
0 голосов
/ 09 октября 2019

Попробуйте, измените имя столбца в соответствии с именами таблицы и столбца.

Select e.name,e.serviceNubmer,e.Job,e.salaries 
from emp e,serv s 
where 
e.noserv = s.noserv 
and s.city ='HAVET';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...