簡體   English   中英

具有自聯接訪問權限的子查詢,無法識別表別名

[英]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的列(例如,在selectwheregroup byhavingorder byon子句中),但不能引用整個表。

我正在繼續,但我認為查詢是無意義的。 在一個地方,查詢說q2.daynum > q3.daynum 在另一個q2.daynum = q3.daynumq2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM