[英]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.