我需要根据其他表中的数据将值插入表的列中。 示例数据:
Table ccdocs
ID index reference Location_id
1 001 ABCD
2 001A EFGH
3 002 NULL
4 003 NULL
Table: cclvig
index reference Location
001 ABCD VMC
001A EFGH VMC_TOP
002 NULL ICF
003 NULL VMC
Table : doc_location
loc_id Lctn
1 VMC
2 VMC_TOP
3 ICF
ccdocs的所有记录都是从cclvig通过查询复制的。现在我必须根据cclvig列" location"的值将位置ID插入到ccdocs中。表doc_location具有位置标识。我尝试使用select语句更新查询..但它返回多个值..请帮助..
答案 0 :(得分:1)
UPDATE ccdocs d
SET location_id = loc.loc_id
FROM doc_location loc
JOIN cclvig c ON c.location = loc.lctn
WHERE d.index = c.index;
在UPDATE
中,您可以指定查询从何处获取新值。此查询对于常规SELECT
语句(对允许的子句有限制)是绝对的,但不是实际的SELECT column list
,而是UPDATE table SET column =
短语。
答案 1 :(得分:0)
尝试以下查询
update ccdocs set Location_id=loc.loc_id
from(
select a.index,b.loc_id from cclvig a inner join doc_location on
a.Location=b.Lctn
)loc
on ccdocs.index=loc.index