我试图做一些我认为很简单的事情,但这让我很难过。
我有一张家具表,其中包括一个名为" category" (床,椅子,桌子等)和类别表,它们将这些类别中的每一个在名为categoryname的列中与categoryID配对(这是在团队成员的请求下添加的,以便于搜索)。
我想根据家具表中的类别列和类别表中的categoryname列之间是否匹配来填充家具表中具有这些categoryID的列。
在这个网站和其他地方搜索后,我决定试试这个:
UPDATE furniture
SET categoryid = categories.categoryid
FROM categories
WHERE categories.categoryname = furniture.category
哪个运行,但没有任何反应。
我假设它是因为WHERE语句不足以克服我尝试做的事情,我需要某种JOIN语句来明确链接categoryname列在家具表中的类别列的类别表中,但我如何将其合并?基于对他人有用的最佳猜测是这样的:
UPDATE furniture
INNER JOIN categories ON categories.categoryname = furniture.category
SET furniture.categoryid = categories.categoryid
WHERE categories.categoryname = furniture.category
但它只是给我语法错误。
(我已经检查过以确保类别名称和类别列在拼写等方面匹配)
答案 0 :(得分:2)
试一试
UPDATE f
SET
categoryid = c.categoryid
from furniture f
INNER JOIN categories c ON c.categoryname = f.category
你能再次复制吗?
答案 1 :(得分:2)
您应该尊重这种语法:
UPDATE furniture
SET furniture.categoryid = categories.categoryid
INNER JOIN categories ON categories.categoryname = furniture.category
WHERE categories.categoryname = furniture.category