我需要更新一个SQLite表。
该表如下所示:
ID | Address | CallNumber | RefID
-----+--------------------+-------------------------------------------
ef78 | library | 2002/13 | 100002
no56 | Lit | 0189 | 100003
rs90 | temp | | 100003
对于Address = "Lit“的每一列,都有一个具有相同RefID的Address = 'temp‘列。现在,我需要用具有相同RefID的列中的值"CallNumber“更新每个Address = "temp”。
更新后的表应如下所示:
ID | Address | CallNumber | RefID
-----+--------------------+-------------------------------------------
ef78 | library | 2002/13 | 100002
no56 | Lit | 0189 | 100003
rs90 | 0189 | | 100003
我试过这个:
UPDATE Location
SET address = foo.callnumber
FROM (select RefID, CallNumber FROM Location) foo
WHERE foo.RefID=Location.RefID AND Location.Address = 'temp';
但我得到的只是"from“附近的语法错误。
有什么线索吗?
发布于 2013-03-19 20:18:40
UPDATE
命令do not have a FROM
clause。
使用相关子查询:
UPDATE Location
SET Address = (SELECT CallNumber
FROM Location L2
WHERE L2.RefID = Location.RefID
AND L2.Address = 'Lit')
WHERE Address = 'temp'
https://stackoverflow.com/questions/15498173
复制相似问题