cypher query to find Employee nodes who have all the Skills
Aside: Your Cypher query uses node labels and relationship types that do not match your illustrated data model. So, I will ignore your illustration.

This is a slightly tricky way to get the employee nodes that have Has_Skill relationships to all profession nodes:

MATCH (p:profession)
WITH COUNT(p) AS pCount
MATCH (employee:employee)-[r:Has_Skill]-&gt;()
WITH pCount, employee, COUNT(r) AS sCount
WHERE sCount = pCount
RETURN employee;


The query gets the number of profession nodes and returns employees that have that number of skills.

By the way, you will get much better support for neo4j questions at stackoverflow.com.