Oracle Query不返回选定的行错误

时间:2018-11-30 02:34:44

标签: sql database oracle

我需要帮助解决此查询。 列出与拥有empno 77的员工Joe Bloggs在同一家电影院工作的员工的员工详细信息。 我做错了什么让它返回(未选择行)。

   SELECT *
   FROM Employee
   WHERE Cinema_no = ( SELECT Cinema_no 
   FROM Employee
   WHERE First_name = 'Joe' AND Surname = 'Bloggs')
   ORDER BY Surname ASC ;

2 个答案:

答案 0 :(得分:0)

然后假设所有表名和列名都是正确的,要进行调试,必须确保子查询首先生效。单独运行它,以进行一些“线索与错误”调试

SELECT
    *
FROM Employee
WHERE First_name = 'Joe'
AND Surname = 'Bloggs'

也许尝试喜欢?和/或条件较少

SELECT
    *
FROM Employee
WHERE First_name LIKE 'Joe%'
-- AND Surname LIKE 'Bloggs%' 
-- AND empno = 77

删除-如果上述一项正常工作

一旦可以正常使用,那么您的查询余额就可以满足您的目标。


SELECT *
FROM Employee
WHERE Cinema_no = (
   SELECT Cinema_no 
   FROM Employee
   WHERE First_name = 'Joe' AND Surname = 'Bloggs'
   and empno = 77
   )
and empno <> 77
ORDER BY Surname ASC ;

答案 1 :(得分:0)

不能100%确定您的数据是什么样子,而是将“ =”替换为关键字“ in” 对于将来使用此逻辑的查询,这将派上用场。 我进行了更改,并在下面添加了代码。

   SELECT *
   FROM Employee
   WHERE Cinema_no in ( SELECT Cinema_no 
   FROM Employee
   WHERE First_name = 'Joe' AND Surname = 'Bloggs')
   ORDER BY Surname ASC ;