首页 文章

Oracle Query不返回任何行选择错误

提问于
浏览
0

我需要帮助来解决这个问题 . List employee details for the employees who work at the same cinema as the employee Joe Bloggs who has empno 77. 返回时我做错了什么(没有选择行) .

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

2 回答

  • 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 ;
    
  • 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 ;
    

相关问题