使用自联接访问子查询时,它无法识别表别名

时间:2014-03-21 10:39:51

标签: sql ms-access correlated-subquery

我构建了一些子查询:

select 
    q2.addedquests, q2.daynum
from 
    qrNumberOfQuestsToDo as q2 
inner join 
    qrNumberOfQuestsToDo as q3 on q2.daynum > q3.daynum
where 
    q2.DayNum = (select max(q3.DayNum) from q3);

但MS Access无法识别子查询中的q3。为什么呢?

1 个答案:

答案 0 :(得分:1)

为什么不呢?因为这就是SQL的工作原理。您可以引用到子查询中的q3列(selectwheregroup byhaving,{例如{1}}或order by子句,但不是整个表。

我还在继续,但我认为这个查询并不合情理。在一个地方,查询说on。在另一个,q2.daynum > q3.daynum。因此,查询不会返回任何内容。但是,您仍然可以将其表示为有效的SQL。请注意,外部查询中并不真正需要q2.daynum = q3.daynum。请尝试相关的子查询:

q3