GQL overview

Graph Query Language (GQL) is a language designed to query graph data. This page describes the high level structure of GQL.

Statement and clause

In GQL, a statement refers to a complete unit of execution, and a clause represents a modifier to statements. See the statement list for a complete list.

Working table

A working table refers to the intermediate table representing the input or output of a GQL statement.

A GQL statement receives an incoming working table and produces an outgoing working table.

The first incoming working table is a table with a single row. The last outgoing working table is returned as the query results.

Linear query statement

A linear query statement consists of multiple statements from the statement list . It always ends with a RETURN statement .

Each statement generates intermediate results (the working table) and then passes those results to the next statement. The output of a linear query statement comes from the final RETURN statement.

Examples

  GRAPH 
  
 FinGraph 
 MATCH 
  
 ( 
 p 
 : 
 Person 
 ) 
 -[ 
 o 
 : 
 Owns 
 ]- 
> ( 
 a 
 : 
 Account 
 ) 
 FILTER 
  
 p 
 . 
 birthday 
 < 
 '1990-01-10' 
 RETURN 
  
 p 
 . 
 name 
 /*------+ 
 | name | 
 +------+ 
 | Dana | 
 | Lee  | 
 +------*/ 
 

Combining linear query statements with set operators

You can use a set operator to combine multiple linear query statements into one. For more information, see the syntax for the GQL set operation .

Examples

A set operator between two linear query statements with the same set of output column names and types but with different column orders is supported. For example:

  GRAPH 
  
 FinGraph 
 MATCH 
  
 ( 
 p 
 : 
 Person 
 ) 
 RETURN 
  
 p 
 . 
 name 
 , 
  
 1 
  
 AS 
  
 group_id 
 UNION 
  
 ALL 
 MATCH 
  
 ( 
 p 
 : 
 Person 
 ) 
 RETURN 
  
 2 
  
 AS 
  
 group_id 
 , 
  
 p 
 . 
 name 
 /*------+----------+ 
 | name | group_id | 
 +------+----------+ 
 | Alex |    1     | 
 | Dana |    1     | 
 | Lee  |    1     | 
 | Alex |    2     | 
 | Dana |    2     | 
 | Lee  |    2     | 
 +------+----------*/ 
 

Chaining linear query statements with the NEXT statement

You can use the NEXT keyword to chain multiple linear query statements into one.

The final linear query statement must produce non-GQL data types, but linear query statements that proceed it can produce GQL data types, such as nodes and edges.

Examples

The following is an example of a graph query chaining multiple linear query statements using NEXT .

  GRAPH 
  
 FinGraph 
 MATCH 
  
 ( 
 a 
 : 
 Account 
  
 { 
 is_blocked 
 : 
  
 TRUE 
 } 
 ) 
 RETURN 
  
 a 
 UNION 
  
 ALL 
 MATCH 
  
 ( 
 a 
 : 
 Account 
 ) 
< -[: 
 Owns 
 ]- 
 ( 
 p 
 : 
 Person 
  
 { 
 id 
 : 
  
 2 
 } 
 ) 
 RETURN 
  
 a 
 NEXT 
 MATCH 
  
 ( 
 a 
 : 
 Account 
 ) 
 -[ 
 t 
 : 
 Transfers 
 ]- 
> ( 
 oa 
 : 
 Account 
 ) 
 WITH 
  
 DISTINCT 
  
 oa 
 RETURN 
  
 oa 
 . 
 nick_name 
 /*----------------+ 
 | nick_name      | 
 +----------------+ 
 | Vacation Fund  | 
 | Vacation Fund  | 
 | Rainy Day Fund | 
 +----------------*/ 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: