zoukankan      html  css  js  c++  java
  • Neo4j CQL -(14) -UNION联合

    与SQL一样,Neo4j CQL有两个子句,将两个不同的结果合并成一组结果

    UNION
    UNION ALL
    

    UNION子句

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

    限制:

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

    UNION子句语法

    <MATCH Command1>
       UNION
    <MATCH Command2>

    语法说明:
    这里写图片描述

    注意 -

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

    示例:我们将采取一个银行应用程序的节点:信用卡式和借记卡解释UNION子句

    信用卡式节点数据:
    第1步 -打开Neo4j的数据浏览器
    第2步 -在数据浏览器的美元提示符处键入以下命令。

    查看 CreditCard

    MATCH (cc:CreditCard) RETURN cc

    点击“下载CSV”来查看结果
    这里写图片描述

    紧接着,咱们查看DebitCard

    MATCH (dc:DebitCard) RETURN dc

    点击“下载CSV”来查看结果
    这里写图片描述

    相互对比一下,咱们可以发现他们的所有内容相似,咱们使用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”子句。

    于是,对于union语句的使用,应当在保证各个属性均一致且合并时,应当改为同一名称的基础下,为如下:

    MATCH (cc:CreditCard)
    RETURN cc.id as id,cc.number as number,cc.name as name,
       cc.valid_from as valid_from,cc.valid_to as valid_to
    UNION
    MATCH (dc:DebitCard)
    RETURN dc.id as id,dc.number as number,dc.name as name,
       dc.valid_from as valid_from,dc.valid_to as valid_to

    结果如图:
    这里写图片描述

    本文参考:https://www.w3cschool.cn/neo4j/neo4j_cql_union.html

  • 相关阅读:
    使用Haskell写web
    src/lxml/etree.so: undefined symbol: xmlSchematronSetValidStructuredErrors 解决方案
    CentOS允许某一端口接受外部链接
    windows下的NTP服务
    Huffman树,Huffman编码的实现(C#)
    OpenGL的函数(GLU, GLUT)
    OpenGL的函数(GL)
    GLUT函数说明
    FreeImage使用基础,图像旋转,图像滤波
    Hello PureMVC!!!
  • 原文地址:https://www.cnblogs.com/DeepRunning/p/9205934.html
Copyright © 2011-2022 走看看