根据多个sql表中的查找更新单个条目

时间:2014-10-28 07:18:09

标签: sql postgresql

我正在尝试更新表中的条目以反映我存储在另一个表中的内容,这取决于项目在另一个表中的类别。哦,我的物品都用字母键(AKey)和数字键(NKey)键入。

到目前为止我已经

update itmHistory
set ithLocation = storLocation from items, storage
where ithAKey in (select storAKey from storage)
  and ithNKey in (select storNKey from storage)
  and storCategoryName = itmCategoryName;

最终发生的事情是,items表中的每个实例都将设置为storCategoryName = itmCategoryName的最后一个条目。

如果找到每个更新的任何想法?

编辑:表格信息:

itmHistory: ithAKey varchar(3)   PK
            ithNKey int          PK
            ithStart timestamp   PK
            ithEnd timestamp
            ithLocation text

items:      itmAKey varchar(3)   PK
            itmNKey int          PK
            itmCategoryName text

storage:    storName text        PK
            storCategoryName text
            storLocation text

(PK =主键)

1 个答案:

答案 0 :(得分:0)

根据您的表信息,这个怎么样?

UPDATE ih 
SET ih.ithLocation = s.storLocation
FROM itmHistory ih
JOIN items i ON ih.ithAKey = i.itmAkey  AND ih.ithNKey=i.itmNKey
JOIN Storage s ON i.itemCategoryName = s.storCategoryName