0

Table2 の @rid を Table1 のフィールド "r1" にコピーしたいのですが、Table2.f1=Table1.f2 (f1 と f2 は他の 2 つのフィールド) です。

私が思いついた唯一の解決策はこれです:

UPDATE Table1 SET r1=(SELECT @rid FROM Table2 
WHERE Table2.f1=$parent.$current.f2)

ただし、フィールド/値リスト全体を含む文字列を返します。したがって、次のようにトリミングする必要があります。

UPDATE Table1 SET r1=r1.substring(6,12) 

(@rid 部分だけを保持するため)

しかし、単一のクエリで、より優れた/よりエレガントなソリューションが必要であるように思えます。

上記のフィールド リストから @rid のみを抽出する方法はありますか?

Omega Silva のソリューションも試しましたが、うまくいかないようです。 これは私が得るエラーです。

何か案は?

4

1 に答える 1

0

正しく理解しているかどうかはわかりませんが、この小さな例で試しました

ここに画像の説明を入力

そして

UPDATE Table1 SET r1=(SELECT @rid FROM Table2 WHERE f1=$parent.$current.f2)

私は得た

ここに画像の説明を入力

それが役に立てば幸い。

于 2016-10-07T13:28:59.560 に答える