比如我想查询某班所有喜欢三体的同学可以这么写
match (:`班级`{Class:'14班'})<-[:`属于`]-(stu:`同学`)-[:`喜欢`]->(m:`书籍`{Title:'三体')
return stu
但我如果想写某班同时喜欢《三体》、《红楼梦》、《平凡的世界》的同学有哪些,就不会写了。下面这个写法只能把所有喜欢这三本书的同学都查询出来。
match (:`班级`{Class:'14班'})<-[:`属于`]-(stu:`同学`)-[:`喜欢`]->(m:`书籍`)
where m.Title in ['红楼梦','三体','平凡的世界']
return stu,m
你可以这样改写查询语句来查询喜欢所有这三本书的同学:
MATCH (:`班级`{Class:'14班'})<-[:`属于`]-(stu:`同学`)
WHERE (stu)-[:`喜欢`]->(:`书籍` {Title: '红楼梦'})
AND (stu)-[:`喜欢`]->(:`书籍` {Title: '三体'})
AND (stu)-[:`喜欢`]->(:`书籍` {Title: '平凡的世界'})
RETURN stu