簡體   English   中英

postgreSQL:使用JOIN和UPDATE用來自另一個表的數據更新一個表

[英]postgreSQL: use JOIN and UPDATE to update one table with data from another

我正在嘗試做一些我認為非常簡單的事情,但是這讓我很沮喪。

我有一個家具表,其中包括一個名為“類別”的文本列(床,椅子,書桌等)和一個類別表,該類別表在名為categoryname的列中將這些類別中的每個類別與categoryID配對(這是應團隊成員,以方便搜索)。

我想根據家具表中的類別列和類別表中的categoryname列之間是否匹配,使用這些categoryID填充家具表中的列。

在此站點和其他地方搜索之后,我決定嘗試以下操作:

UPDATE furniture
SET categoryid = categories.categoryid
FROM categories
WHERE categories.categoryname = furniture.category

哪個運行,但是什么也沒有發生。

我假設這是因為WHERE語句不足以理解我要執行的操作,並且我需要某種JOIN語句來顯式鏈接category表中的categoryname列與家具表中的category列,但是我該如何合並呢? 基於對其他人有用的最好的猜測是這樣的:

UPDATE furniture
INNER JOIN categories ON categories.categoryname = furniture.category
SET furniture.categoryid = categories.categoryid
WHERE categories.categoryname = furniture.category

但這只是給我語法錯誤。

(我已經檢查以確保categoryname和category列在拼寫等方面匹配)

試試這個

UPDATE f
SET 
    categoryid = c.categoryid
from furniture f
INNER JOIN categories c ON c.categoryname = f.category

您能再復制一次嗎?

您應該遵循以下語法:

UPDATE furniture
SET furniture.categoryid = categories.categoryid
INNER JOIN categories ON categories.categoryname = furniture.category
WHERE categories.categoryname = furniture.category

暫無
暫無

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

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