У меня странная проблема. Я не могу понять, почему запрос Neo4j возвращает разные результаты.Почему запрос Neo4j не возвращает данные с первым запросом?
WITH shipper
MATCH (shipper)<-[:SHIPPED_BY]-(shipment:ActiveShipment)-[:SHIP_TO_CITY]->(toCity)
<-[:HAS_CITY]-(toState:State),
**(veh:Vehicle)<-[:HAS_VEHICLE_TYPE]-(shipment)-[:SHIP_FROM_CITY]->(frmCity:City)
<-[:HAS_CITY]-(frmState:State)**
RETURN shipment, toCity, frmCity, frmState, veh
возвращает
но только делая небольшие изменения в запрос получает меня правильные результаты:
WITH shipper
MATCH (shipper)<-[:SHIPPED_BY]-(shipment:ActiveShipment)-[:SHIP_TO_CITY]->(toCity)
<-[:HAS_CITY]-(toState:State),
(veh:Vehicle)<-[:HAS_VEHICLE_TYPE]-(shipment)
**MATCH (shipment)-[:SHIP_FROM_CITY]->(frmCity:City)<-[:HAS_CITY]-(frmState:State)**
RETURN shipment, toCity, frmCity, frmState, veh
, который выглядит следующим образом
Только разница между отправлениями, которые не возвращаются из возвращенного, заключается в том, что они имеют одинаковые значения для числа и числа. Может кто-то, пожалуйста, помогите мне понять, в чем проблема с моим первым запросом?
UPDATE
его легко воспроизвести,
Create (st:State{Name:'ABC'})-[:HAS_CITY]->(c:City{Name:'XYZ'})<-[:SHIPPED_FROM]-(sh:Shipment{InternalId:1})-[:HAS_VEHICLE_TYPE]->(vh:Vehicle{Name:'Vheicle 1'}), (sh)-[:SHIPPED_TO]->(c)
теперь, если добавить этот запрос будет терпеть неудачу
MATCH (shipment:Shipment)-[:SHIPPED_TO]->(toCity) <-[:HAS_CITY]-(toState:State), (veh:Vehicle)<-[:HAS_VEHICLE_TYPE]-(shipment)-[:SHIPPED_FROM]->(frmCity:City)<-[:HAS_CITY]-(frmState:State) RETURN shipment, toCity, frmCity, veh
Я думаю, что проблема в том, что же Состояние появляется дважды, если я удалю его, Работа.
С уважением Киран
ли вы иметь возможность поделиться график? Например. в console.neo4j.org/r/blank? –
Единственное, что быстро приходит в голову, это то, что в одном MATCH каждое отношение разрешено только один раз, но с несколькими операторами соответствия вы удаляете это ограничение, чтобы оно могло снова совпадать с теми же отношениями. –
@MichaelHunger Я обновил вопрос, чтобы привести пример. – Kiran