1. 文章
  2. 文章详情

Neo4j CQL - (UNION)连接

Neo4j CQL有两个子句,将两个不同的结果合并成一组结果,即UNION语句用于将多个查询结果组合起来。

  • UNION
  • UNION ALL

UNION子句

它将两组结果中的公共行组合并返回到一组结果中。 它不从两个节点返回重复的行。

限制

结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该相同,列的数据类型应该相同。

语法

MATCH Command1
   UNION
MATCH Command2

语法说明:

语法元素 描述
MATCH COMMAND1 它是CQL MATCH命令,由UNION子句使用。
MATCH Command2 它是CQL MATCH命令两个由UNION子句使用。
UNION 它是UNION子句的Neo4j CQL关键字。

注意 -

如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。

本例说明:如果UNION子句的这两个查询确实有相同的名称或相同的数据类型及其列会发生什么。

MATCH (cc:CreditCard) RETURN cc.id,cc.number
UNION
MATCH (dc:DebitCard) RETURN dc.id,dc.number

这两个查询应具有相同的列名。

首先查询有:cc.id,cc.number。

第二个查询有:dc.id,dc.number。

这里既有信用卡式和借记卡具有相同的属性名:身份证和号码,但他们有不同的节点名称前缀。这就是为什么UNION命令显示此错误消息。为了避免这种错误,Neo4j的CQL提供“AS”子句。

像CQL,CQL Neo4j的“AS”子句用于给一些别名。

UNION ALL子句

它结合并返回两个结果集的所有行成一个单一的结果集。它还返回由两个节点重复行。

限制

结果列类型,并从两个结果集的名字必须匹配,这意味着列名称应该是相同的,列的数据类型应该是相同的。

语法

MATCH Command1
UNION ALL
MATCH Command2

语法说明

语法元素 描述
MATCH COMMAND1 这是CQL match命令由UNION子句中使用的一个。
MATCH命令2 这是CQL match命令两到由UNION子句中使用。
UNION ALL 这是UNION ALL子句的Neo4j的CQL关键字。

注意 -

如果这两个查询不返回相同的列名和数据类型,那么它抛出一个错误。

发表评论

登录后才能评论

评论列表(0条)