Je veux copier le @rid de Table2 dans un champ "r1" de Table1, où Table2.f1 = Table1.f2 (f1 & f2 juste deux autres champs).OrientDB SQL - Mise à jour avec sous-requête
La seule solution que je suis venu avec est la suivante:
UPDATE Table1 SET r1=(SELECT @rid FROM Table2
WHERE Table2.f1=$parent.$current.f2)
Mais il retourne une chaîne avec la liste complète/valeur du champ. donc je dois le couper comme suit:
UPDATE Table1 SET r1=r1.substring(6,12)
(pour garder seulement la partie @rid)
Mais il me semble qu'il doit y avoir une meilleure/solution plus élégante, avec un seul question.
Existe-t-il un moyen d'extraire uniquement le @rid de la liste de champs ci-dessus? J'ai également essayé Omega Silva's solution, ce qui ne semble pas fonctionner. This is the error I get.
Des idées?
Apparemment, vous avez fait exactement ce que j'ai fait. Mais le résultat n'est pas le même. -je obtenir une liste des champs comme celui-ci (mon exemple est avec détection vidéo que je reçois d'un MongoDB): [Vidéo # 28: 16 {Mongo_ID: 5714c50f142d7d2cf7c100fb, EG_ID: Video_5714c50f142dc100fb, W: 576,0, H: 704,0, Cadres: 45061 , Label: Video, VideoID: d8637219a389a77bbb65194a} v2] Le résultat obtenu semble être en accord avec ce qu'Omega Silva a écrit, à savoir que «la sous-requête (la requête select) renvoie toujours une collection». Toujours confus, parce que j'ai déjà essayé cela. Merci quand même! – ChrisB
Oui, la sous-requête (la requête select) renvoie toujours une collection. –