簡體   English   中英

錯誤:關系 [表名] 不存在

[英]Error: relation [table name] does not exist

我想知道是否有任何特殊原因我不能從同一查詢中創建的臨時表中獲取 select。 我寫了一個簡單的 select 語句

CREATE TEMP TABLE items AS 
(
    SELECT item_no
    FROM items_list
    WHERE item_date < CURRENT_DATE
);

SELECT 
    it.item_no, it2.itemstatus
FROM
    items it 
LEFT JOIN
    itmes_status it2 ON it2.item_no = it.item_no

我仍然總是收到錯誤

無效操作:關系[臨時表名]不存在;

我試圖刪除表,重命名它,在 from 和 join 語句中反轉表......但到目前為止似乎沒有任何效果。

你看到上面的查詢有什么問題嗎?

非常感謝!

這與 SQL 的處理方式有關。 執行查詢分為三個階段:

  • 解析查詢。
  • 優化執行計划。
  • 執行查詢。

當您提交“批處理”時,所有解析和優化都發生在查詢運行之前 唉,此時該表不存在。 該表僅在第一個表執行后才存在。

您可以簡單地將這兩個查詢作為兩個單獨的語句運行。

在SQL服務器及相關數據庫中,創建臨時表的語法為:

create table #<table name goes here> as
    select . . .;

例如:

創建表 #items AS SELECT item_no FROM items_list WHERE item_date < CURRENT_DATE;

暫無
暫無

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

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