Postgresql

用沒有關係的其他表填充表的列

  • December 28, 2021

您好,我在 PostgreSQL 中有 2 個表:第一個

"Products" 
id
price
factor1
factor2

列 factor1 和 factor2 它們都是空的,我想用另一個表的數據填充它們

"Article" 
id
factor1
factor2

我想填充 Product 的 id 與 Article 相同但表格彼此或 FK 沒有關係的列,那麼我該如何完成呢?

我試過這個:

UPDATE Products
SET factor1 =
 (SELECT factor1
  FROM Article
  WHERE Article.id = Products.id)
WHERE EXISTS
 (SELECT factor1
  FROM Article
  WHERE Article.factor1 = Products.id)

但我收到此錯誤:

SQL 錯誤

$$ 42P01 $$:錯誤:關係“文章”不存在位置:213

更緊湊的寫法是:

UPDATE Products
SET factor1 = article.factor1
from Article
WHERE Article.id = Products.id and products.factor1 is null

正如@a_horse_with_no_name 在評論中指出的那樣:

“文章”是與文章不同的名稱

擺弄您目前的表名和查詢:

使用雙引號的範例

返回您的錯誤:

錯誤:關係“產品”不存在第 1 行:

更新產品

但是如果你取消引用它:

沒有雙引號名稱的範例

它工作正常。

引用自:https://dba.stackexchange.com/questions/249533