繁体   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