MATCH (n), (n)-[:connected_to {status: 2}]-(sp:StayPal)
OPTIONAL MATCH (n)-[:connected_to {status: 1}] - (mutual_friend)-[:connected_to {status: 1}]-(sp)
WHERE (ID(n) = {ID_n})
RETURN DISTINCT sp, collect(mutual_friend)
我正在尝试获取状态= 2的n(staypal)的所有连接以及n和sp的所有相互连接,但是我得到了错误的结果
任何帮助?
答案 0 :(得分:1)
WHERE子句的位置很重要,因为它适用于前面的子句。把它放在你的MATCH下,而不是OPTIONAL MATCH。
请记住,OPTIONAL MATCH的行为是找到匹配项,如果找不到匹配项(包括OPTIONAL MATCH的WHERE子句的计算结果为false),则新引入的变量将设置为null。
此外,除了模式匹配之外,不需要匹配(n)。只需使用MATCH (n)-[:connected_to {status: 2}]-(sp:StayPal)
作为第一行。