Thanks for the response. Your solution also returns the result, but as Luigi mentioned the key is to treat the sub-query as a resultset.
On Tuesday, October 25, 2016 at 11:43:51 PM UTC-7, Oleksandr Gubchenko wrote: > > Can you try this one? > > select $aa.@rid, a from B > let $aa = (select from A where id = 1) > > *Upd: sorry, I have misunderstand your question, Luigi's answer will help > you.* > > > Il giorno mercoledì 26 ottobre 2016 08:37:19 UTC+2, [email protected] ha > scritto: >> >> >> Hello, >> >> I seem to run into a wall while trying to figure the LET statement which >> is just failing on me, Here are 2 classes where one has link to another. I >> need to use the LET statement to get the linked class by provided id, but >> the result never returns any records. Sub query does return the result >> correctly, but not the query with the LET statement. >> >> My classes: >> >> create class A extends V >> create property A.id INTEGER (NOTNULL TRUE, MANDATORY TRUE) >> >> create class B extends V >> create property B.a LINK A (NOTNULL TRUE, MANDATORY TRUE) >> >> insert into A (id) values (1) >> insert into B set a = (select from A where id = 1) >> >> select from B let $aa = (select from A where id = 1) where a = $aa >> select from B let $aa = (select from A where id = 1) where a = $aa.@rid >> >> >> Here is the data >> >> orientdb {db=Customers}> select from A >> >> +----+------+------+----+ >> |# |@RID |@CLASS|id | >> +----+------+------+----+ >> |0 |#185:0|A |1 | >> +----+------+------+----+ >> >> 1 item(s) found. Query executed in 0.002 sec(s). >> orientdb {db=Customers}> insert into B set a = (select from A where id = >> 1) >> >> Inserted record 'B#189:0{a:#185:0} v1' in 0.004000 sec(s). >> >> orientdb {db=Customers}> select from B >> >> +----+------+------+------+ >> |# |@RID |@CLASS|a | >> +----+------+------+------+ >> |0 |#189:0|B |#185:0| >> +----+------+------+------+ >> >> >> As you can see from above, class B has a link to class A. In my >> understanding the query below must work, but it returns nothing. I tried 2 >> combinations of the query and both don't work. >> >> orientdb {db=Customers}> select from B let $aa = (select from A where id >> = 1) where a = $aa >> >> 0 item(s) found. Query executed in 0.003 sec(s). >> >> orientdb {db=Customers}> select from B let $aa = (select from A where id >> = 1) where a = $aa.@rid >> >> 0 item(s) found. Query executed in 0.003 sec(s). >> >> >> >> Am I doing something wrong or is it a bug? >> >> -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
