【问题标题】:How to use subqueries in oracleoracle中子查询的使用方法
【发布时间】:2019-10-09 17:55:47
【问题描述】:

您好,我正在尝试用子查询来解决这个问题:

选择姓名、服务编号、工作和薪水 与 HAVET 在同一个城市工作的人。 (有一个名字)

我只有两个表,第一个是带有列(noserv、name、job、salary)的 emp 表,第二个是带有列(noserv、nameserv、city)的 SERV 表

我知道我必须使用子查询,但我不知道该怎么做。

【问题讨论】:

标签: sql oracle subquery


【解决方案1】:

半伪代码(显然,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'
               );

【讨论】:

  • 不是真的,但如果有帮助我很高兴。
【解决方案2】:

试试这个:

-- 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') 

【讨论】:

    【解决方案3】:

    试试这个,根据你的表和列名更改列名。

    Select e.name,e.serviceNubmer,e.Job,e.salaries 
    from emp e,serv s 
    where 
    e.noserv = s.noserv 
    and s.city ='HAVET';
    

    【讨论】:

    • 错误是什么?还是结果?请提供您尝试获得相同的预期输出和查询。
    • code Select e.nom, e.noserv, e.emploi,e.sal from emp e,serv s where e.noserv = s.noserv and s.ville = 'HAVET'; code我有一个空白输出,我需要在同一个城市工作的所有员工'havet'先生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2021-03-16
    • 2020-11-15
    • 1970-01-01
    相关资源
    最近更新 更多