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中子查询的使用方法有哪些?的主要内容,如果未能解决你的问题,请参考以下文章