oracle中子查询的使用方法有哪些?

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

你不应该需要一个子查询,只需要一个连接。 阅读此内容 => techonthenet.com/oracle/joins.php 【参考方案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'先生

以上是关于oracle中子查询的使用方法有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Oracle中子查询的工作

oracle 查询哪些表分区

oracle怎样查询哪些表分区?

oracle怎样查询哪些表分区?

高手来oracle 子查询去重

oracle子查询问题,急急急!