0

我正在尝试使用 OrientDB 解决一个简单的 MATCH 查询。

我会向用户 A 推荐与用户 B 共有的产品 P。

当我尝试此查询时,我收到一条错误消息,指出“第 1 行第 33 列出错”

SELECT d1.UserId, d2.UserId FROM (
  MATCH 
  {class:User, as: U1} -buy-> {class:Product, as:P},
  {class:User, as: U2} -buy-> {as:P},
  {as:U2} -buy-> {class:Product, as P2}
  RETURN U1 as d1, U2 as d2, O as o
)

您有什么建议可以解决我的问题吗?

谢谢罗伯

4

2 回答 2

1

:您在最后一个模式的末尾错过了 a ,只需尝试以下操作

SELECT d1.UserId, d2.UserId FROM (
  MATCH 
  {class:User, as: U1} -buy-> {class:Product, as:P},
  {class:User, as: U2} -buy-> {as:P},
  {as:U2} -buy-> {class:Product, as:P2}
  RETURN U1 as d1, U2 as d2, O as o
)
于 2017-01-30T08:18:59.417 回答
0

最后我认为最好的解决方案是

SELECT d1.UserId, d2.UserId FROM (
  MATCH 
  {class:User, as: U1, where: (UserId=12345) } -buy-> {class:Product, as:P},
  {class:User, as: U2, where: (UserId<>12345)} -buy-> {as:OP},
  {as:U2} -buy-> {class:Product, as:P2}
  RETURN U2 as d2, P, OP
)

感谢所有的帮助。

R。

于 2017-01-31T09:10:59.377 回答