次のスキーマを持つテーブルがあります。SQL ServerのUPDATE FROMをSQLiteに変換します
CREATE TABLE [dbo].[MatrixElements] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[OdPairKey] INT NOT NULL,
[Value] FLOAT (53) NOT NULL,
[Matrix_Id] INT NULL
);
は、別のテーブルの外部キーです。私がしたいのは、テーブル内の値を、元の値と同じOdPairKey
に一致するが、異なるMatrix_Id
に一致する他の値の合計で上書きします。次のクエリはSQL Serverで動作します。
UPDATE dbo.MatrixElements
SET [Value] = O.[Value] + I.[Value]
FROM dbo.MatrixElements O
INNER JOIN (SELECT * FROM dbo.MatrixElements WHERE Matrix_Id = 2) I
ON O.OdPairKey = I.OdPairKey
WHERE O.Matrix_Id = 1
しかし、SQLiteはUPDATEでFROM句をサポートしていないことが判明しました。私は私の人生のためにこれを互換性のあるSQLiteクエリに変換する方法を考え出すことはできません。何か案は?
'dbo'と角括弧を退治してみてください。 –
@DhruvSaxena私はSQLite版ではdboや角かっこがありません。それでも動作しません。それは問題ではありません。問題は私の質問の最下部に記載されています。 SQLiteはUPDATEのFROM句をサポートしていません。 – Steztric