GQL作为图查询语言,会在查询过程中使用表来保存结果。这些表由行记录组成,对应各变量所引用的点、边、路径或值。
每条GQL语句都会生成一个绑定表以存储变量绑定。例如,MATCH
语句会生成一个绑定表,其中的列由查询过程中生成的元素和路径变量组成。绑定表完成构建填充后无法修改。
工作表是用来存储中间数据的临时表,随着查询过程的推进不断更新,因此也称当前工作表。虽然对用户不可见,但工作表在后台起着至关重要的作用。
查询中,每条语句的执行上下文都会影响工作表作出改变。执行上下文将当前工作表视作语句的传入工作表,并将其与生成的绑定表连接后设为传出工作表。
首条语句以空工作表开始。RETURN
语句的绑定表是最终表,也是传出工作表,随后返回至客户端。
FOR target IN ["mochaeach", "purplechalk", "Brainy"]
MATCH (c:Club)
MATCH (u)-[e:Joins]->(c) WHERE u.name = target
FILTER e.memberNo = 1
RETURN target AS User, c._id AS Club