5

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」の近くの構文エラーだけです。

どんな手掛かり?

4

1 に答える 1

13

UPDATEコマンドにはがありませんFROM

相関サブクエリを使用します。

UPDATE Location
SET Address = (SELECT CallNumber
               FROM Location L2
               WHERE L2.RefID = Location.RefID
                 AND L2.Address = 'Lit')
WHERE Address = 'temp'
于 2013-03-19T12:18:40.493 に答える