0
Table2の@ridをTable1のフィールド "r1"にコピーします。ここで、Table2.f1 = Table1.f2(f1 & f2の2つのフィールドのみ)です。OrientDB SQL - サブクエリを使用した更新
私が思いついた唯一の解決策はこれです:
は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's solutionを試しましたが、これはうまくいきません。 This is the error I get.
明らかに、あなたは私がしたことを正確に行いました。しかし結果は同じではありません。 私はこのようなフィールドリストを取得しています(私の例はMongoDBから取得したビデオ検出です): [ビデオ#28:16 {Mongo_ID:5714c50f142d7d2cf7c100fb、EG_ID:Video_5714c50f142dc100fb、W:576.0、H:704.0、Frames:45061 、ラベル:Video、VideoID:d8637219a389a77bbb65194a} v2] 私が得た結果は、「サブクエリ(選択クエリ)は常にコレクションを返す」というOmega Silvaの記述と一致しているようです。 まだ混乱していますので、私はこれを試しました。とにかくありがとうございます! – ChrisB
はい、サブクエリ(selectクエリ)は常にコレクションを返します。 –