Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql无效标识符,使用别名_Sql_Oracle_Nested - Fatal编程技术网

sql无效标识符,使用别名

sql无效标识符,使用别名,sql,oracle,nested,Sql,Oracle,Nested,我是sql新手,正在努力处理嵌套子查询。 这就是我所做的,试图找到至少重修过3门课程至少一次的人。它不起作用。我知道这看起来也很奇怪 完全公开:我还没有测试过语法错误,但我确实看到了代码中的两个主要问题。 答:您需要为子查询提供别名 B:您需要在子查询中使用变量名,同时在外部查询中使用新别名(注意,我在内部查询中为student.id指定了一个别名“student\u id”) 如果您将原始帖子(或后续答案)中出现的错误包括在内,这将非常有用。谢谢!我意识到问题在于学生id是不可见的,但在我给出

我是sql新手,正在努力处理嵌套子查询。
这就是我所做的,试图找到至少重修过3门课程至少一次的人。它不起作用。我知道这看起来也很奇怪

完全公开:我还没有测试过语法错误,但我确实看到了代码中的两个主要问题。 答:您需要为子查询提供别名 B:您需要在子查询中使用变量名,同时在外部查询中使用新别名(注意,我在内部查询中为student.id指定了一个别名“student\u id”)


如果您将原始帖子(或后续答案)中出现的错误包括在内,这将非常有用。

谢谢!我意识到问题在于学生id是不可见的,但在我给出子查询别名后,它仍然显示错误。SQL错误:ORA-00904:“学生ID”:无效标识符破解并隔离问题:内部查询是否单独返回值或错误?我认为这里唯一的问题是
count(student\u id)
应该替换为
count(*)
我已经测试了内部查询,它工作正常。在我将其更改为count(*)后,retakes和student.id现在都是无效标识符。^ Nick在这里查看。单独运行子查询,看看它是否正常工作。我猜您可能忘记在内部查询中将student.id别名为“student\u id”@Nick.McDermaid:我将编辑为count(*),但是count(学生id)在这里应该是一样的。应该是这样,但我认为不存在列
学生id
。但是我们不知道-没有表DDL。我怀疑如果OP花时间发布它,他可能会注意到一些列名不正确。
select student.ID, course_id
from (
  select student.ID, course_id
  from student,takes 
  where student.id = takes.id
  group by student.ID,course_id
  having count(student.ID) >1
  )
group by student.id
having count(*)>2
select 
    retakes.student_id,
    retakes.course_id
from 
(
    select 
        student.ID student_id,
        course_id
    from student,takes 
    where student.id = takes.id
    group by student.ID, course_id
    having count(*) >1
) retakes
group by retakes.student_id
having count(*)>2