[英]Subquery in access with self-join, it does not recognize table alias
我建立了一些子查询:
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
。 为什么?
为什么不? 因为这就是SQL的工作方式。 您可以在子查询中引用 q3
的列(例如,在select
, where
, group by
, having
, order by
或on
子句中),但不能引用整个表。
我正在继续,但我认为查询是无意义的。 在一个地方,查询说q2.daynum > q3.daynum
。 在另一个q2.daynum = q3.daynum
, q2.daynum = q3.daynum
。 因此,查询将不会返回任何内容。 但是,您仍然可以将其表示为有效的SQL。 请注意,外部查询中实际上并不需要q3
。 请尝试使用相关子查询:
select q2.addedquests, q2.daynum
from qrNumberOfQuestsToDo as q2
where q2.DayNum = (select max(q3.DayNum)
from qrNumberOfQuestsToDo q3
where q2.daynum>q3.daynum
) ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.