nebula
nebula copied to clipboard
optional match question
match p=(v2:bbbbb{ip:"11.11.11.11"})-[*]->(v3:ccccc{ip:"11.11.11.11"})-[]->(v4:ddddd)
optional match (v1:aaaaa)-[]->(v2) return p
match p=(v1:aaaaa)-[]->(v2:bbbbb{ip:"11.11.11.11"})-[*]->(v3:ccccc{ip:"11.11.11.11"})-[]->(v4:ddddd) return p
这两句sql实现的功能是一样的。但是我用了optional match,返回的结果就没有aaaaa这部分了。不使用optional match,aaaaa就能搜到,这是为什么?
It seems you didn't return the optional matched pattern at all, see this one instead(with p1 being returned)
因为前边 的 p 定义的只有 第一个 match 吧
match p=(v2:bbbbb{ip:"11.11.11.11"})-[*]->(v3:ccccc{ip:"11.11.11.11"})-[]->(v4:ddddd)
optional p1=match (v1:aaaaa)-[]->(v2) return p,p1
并不行:(
再个,这个语句我用了好久了,之前都是这么写的,好用的。
再个,这个语句我用了好久了,之前都是这么写的,好用的。
我写错地方啦,昨天手机回复的 p1 在 pattern 前边 不是match 前边。
只 return p 的话一定只有 p 对吧
match p=(v2:bbbbb{ip:"11.11.11.11"})-[*]->(v3:ccccc{ip:"11.11.11.11"})-[]->(v4:ddddd)
optional match p1=(v1:aaaaa)-[]->(v2) return p,p1
你说的确实有道理,实际上这么写也确实解决问题了。 不过,之前我真是那么写的,还是还用的。 话说,老哥你是在美国还是上海?北京时间凌晨2点看留言,你也是够拼的