首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在合并和匹配之间需要使用WITH

在合并和匹配之间需要使用WITH
EN

Stack Overflow用户
提问于 2015-06-11 19:06:03
回答 1查看 5.6K关注 0票数 4

我试图建立一个图形数据库,我有两个csv文件。我已经成功地设置了csv的,第一个工作很好。

第一次CSV:

代码语言:javascript
运行
复制
LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/acc.csv" AS csvLine
MERGE (providerName:ProviderName { name: csvLine.providerName })
MERGE (container:Container { name: csvLine.CONTAINER })
MERGE (asset:Asset { name: csvLine.isAsset })
CREATE (account:Account { accountName: csvLine.accountName, id: csvLine.id})
CREATE (account)-[:ACCOUNTS_IN]->(providerName)
CREATE (account)-[:ACCOUNT_TYPE]->(container)
CREATE (account)-[:IS_ASSET]->(asset)

CSV看起来如下:

代码语言:javascript
运行
复制
CONTAINER,accountName,accountStatus,accountNumber,isAsset,balance,id,lastUpdated,providerId,providerName,refreshinfo,isManual
reward,RAHUL RAINA,ACTIVE,xxxx0363,TRUE,3334,16294736,1433967380,9863,HSBC Bank Personal Banking,0|OK|1433967380|1433967380,FALSE
bank,SAVINGS ACCOUNT - RES,ACTIVE,xxxx5006,TRUE,6048.07,16294732,1433967401,9863,HSBC Bank Personal Banking,0|OK|1433967401|1433967401,FALSE
creditCard,VISA GOLD,ACTIVE,xxxx0363,FALSE,4885.56,16294492,1433967428,9863,HSBC Bank Personal Banking,0|OK|1433967428|1433967428,FALSE
bank,SBCHQ-GEN-PUB-IND-NONRURAL-INR,ACTIVE,xxxx6404,TRUE,24572.98,16294488,1433966054,9421,State Bank of India,0|OK|1433966054|1433966054,FALSE

我已经能够用上面的查询生成我所需的图形。

但是,当我导入第二个csv并尝试从trans.csv添加一个关系到acc.csv时

trans.csv看起来是这样的:

代码语言:javascript
运行
复制
CONTAINER,id,amount,baseType,category,description,originalDescription,isManual,date,transactionDate,merchantName,status,accountId
bank,133817384,1400,DEBIT,ATM/Cash Withdrawals,ATM07JUN15 NFS 11:38:44A96103218ATM,ATM07JUN15 NFS 11:38:44A96103218ATM,FALSE,6/8/2015,6/8/2015,Cash Withdrawal,POSTED,16294732
bank,133815940,224,DEBIT,Transfers,TO TRANSFER INB Tinyowl Technology Privat,TO TRANSFER INB Tinyowl Technology Privat,FALSE,6/8/2015,6/8/2015,Transfer,POSTED,16294488

导入第二个csv并建立关系的查询:

代码语言:javascript
运行
复制
LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/trans.csv" AS csvLine
MERGE (baseType:BaseType { name: csvLine.baseType })
MERGE (category:Category { name: csvLine.category })
MERGE (merchantName:MerchantName { name: csvLine.merchantName })
MATCH (account:Account { id: csvLine.accountId }),(transaction:Transaction { id: csvLine.accountId })
CREATE (transaction:Transaction { description: csvLine.description, postedDate: csvLine.date,transactionDate: csvLine.transactionDate ,id: csvLine.id })
CREATE (transaction)-[:CATEGORY_IN]->(category)
CREATE (transaction)-[:TRANSACTED_AT]->(merchantName)
CREATE (transaction)-[:BASETYPE_OF]->(baseType)

我得到了这个错误:

代码语言:javascript
运行
复制
WITH is required between MERGE and MATCH (line 5, column 1 (offset: 253))
"MATCH (account:Account { id: csvLine.accountId }),(transaction:Transaction { id: csvLine.accountId })"

如果acc.csv's : account.id equals trans.csv's : transaction.id,我希望accounts.csv的所有事务都与accounts.csv相关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 19:20:11

为什么不直接给它它要求的WITH声明呢?

把线:

代码语言:javascript
运行
复制
WITH baseType, category, merchantName, csvLine

在你的上一个MERGE和你的MATCH之间。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30789355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档