簡體   English   中英

SQL INNER JOIN看不到表別名

[英]SQL INNER JOIN does not see table alias

我在處理此SQL語句時遇到了麻煩:

SELECT linkstable.date, (linkstable.count - x.count) 
FROM (SELECT .....) AS linkstable 
INNER JOIN linkstable AS x 
  ON linkstable.date = x.date+1 

它告訴我,盡管(SQL錯誤1146)顯然沒有該選擇查詢的別名,但找不到鏈接表。 有人可以告訴我如何繞過此錯誤嗎?

您不能為別名加上別名。 如果要將表自身連接,請重復選擇:

SELECT linkstable.date, (linkstable.count - x.count) 
FROM (SELECT .....) AS linkstable 
INNER JOIN (SELECT .....) AS x ON linkstable.date = x.date+1

如果內部選擇太麻煩,或者您遇到性能問題,請將其結果插入到臨時表中,然后在主查詢中使用它。

您不能像這樣在FROM子句中引用子查詢的別名。 但是,如果您的數據庫支持通用表表達式,則可以使用WITH子句完成相同的操作:

WITH linkstable as (SELECT ...)
SELECT linkstable.date, (linkstable.count - x.count) 
FROM linkstable 
INNER JOIN linkstable AS x 
  ON linkstable.date = x.date+1 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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