Sql 使用嵌套查询从同一个表中查找数据

Sql 使用嵌套查询从同一个表中查找数据,sql,oracle,Sql,Oracle,我已经创建了一个表employee(ename、post、salary)。在这里,我需要找到与Arjun(ename)在同一岗位工作的所有员工 我上面的代码有什么问题我会这样做: select ename from employee where post in (select post from employee where ename = 'Arjun') 我会这样做: select ename from employee where post in (select post from em

我已经创建了一个表employee(ename、post、salary)。在这里,我需要找到与Arjun(ename)在同一岗位工作的所有员工

我上面的代码有什么问题

我会这样做:

select ename
from employee
where post in (select post from employee where ename = 'Arjun')
我会这样做:

select ename
from employee
where post in (select post from employee where ename = 'Arjun')

考虑创建一个子查询,以生成可分配给主查询的结果:

select a.ename
from employee a
where a.post = (select sub.post
                from employee sub
                where sub.ename like 'A%n')
我不知道你为什么使用
like
选项。。。如果你只想得到Arjun的名字,你应该写一个
=
语句:

where sub.ename = 'Arjun'

此外,子查询应该只产生1行;否则Oracle将向您抛出“
ORA-01427:单行子查询返回多行”
”错误。

请考虑创建一个子查询,以生成可分配给主查询的结果:

select a.ename
from employee a
where a.post = (select sub.post
                from employee sub
                where sub.ename like 'A%n')
我不知道你为什么使用
like
选项。。。如果你只想得到Arjun的名字,你应该写一个
=
语句:

where sub.ename = 'Arjun'

此外,子查询应该只产生1行;否则Oracle将抛出“
ORA-01427:单行子查询返回多行”
”错误。

我想知道最后一个问题,比如你能解释一下我的代码错误吗?为什么我的代码错误?我想不起来了,谢谢。我想知道最后一个问题,比如你能解释一下我的代码错误吗?我想不起来了,谢谢