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

  • 相关阅读:
    poj 2728 Desert King
    uva 439 Knight Moves
    hdu 1875 畅通工程再续
    scau实验题 8600 骑士周游问题(有障碍物)
    scau实验题 8596 Longest Ordered Subsequence
    poj 1679 The Unique MST
    uva 527 Oil Deposits
    poj 2533 Longest Ordered Subsequence
    .net 程序员 java 开发入门
    Collation conflict occur at operation on User define funtion & table's column
  • 原文地址:https://www.cnblogs.com/DeepRunning/p/9205934.html
Copyright © 2011-2022 走看看