簡體   English   中英

在 Postgres 中的 WHERE 子句之后不存在非計算列,即使它存在於數據庫中

[英]Non-computed column does not exist after WHERE clause in Postgres, even though it exists in the DB

使用以下代碼:

SELECT * FROM users u
JOIN sales s ON u.id = s.user_id
WHERE u.name = "Guest" AND s.removed = false;

Postgres 會拋出一個錯誤,指出“Guest”列不存在,即使我將name放在引號中,但如果我刪除該子句並且只保留s.remove = false子句,查詢就會編譯。 為什么它找不到 WHERE 子句中未計算和提及的列?

“Guest”是一個不存在的列。

'Guest' 是一個字符串

你要:

SELECT * FROM users u
JOIN sales s ON u.id = s.user_id
WHERE u.name = 'Guest' AND s.removed = false;

盡管實際上您應該指定列名而不是使用 *,因為添加或刪除列將使您在將來難以診斷問題。

暫無
暫無

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

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