Я очень новичок в мире Neo4j, поэтому, пожалуйста, прости меня, если это тривиальный вопрос. У меня есть 2 таблицы, которые я загрузил в базу данных, используя LOAD CSV
исполнителей:
artist_name,artist_id
"Bob","abc"
"Jack","def"
"James","ghi"
"Someone","jkl"
"John","mno"
agency_list:
"Agency"
"A"
"B"
"C"
"D"
Наконец, у меня есть промежуточная таблица, котораяесть художник и агентства, которые его представляют.
artist_agencies:
artist_name,artist_id,agency
"Bob","abc", "A"
"Bob","abc", "B"
"Jack","def", "C"
"James","ghi", "C"
"Someone","jkl","B"
"Someone","jkl", "C"
"John","mno", "D"
Обратите внимание, что некоторые художники могут быть частью нескольких агентств (именно поэтому я не включил переменную агентства втаблица Artist)
Я пытаюсь получить четыре узла агентства, которые подключаются к каждому исполнителю на основе отношения: REPRESENTS. По сути, что-то вроде: (agency:Agency) - [:REPRESENTS] -> (artist:Artist)
Код, который я пробовал:
LOAD CSV WITH HEADERS FROM "file:///agency_list.csv" as agencies
CREATE (agency:Agency {agency: agencies.Agency})
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///artists.csv" as artists
CREATE (artist:Artist {artist: artists.artist_name, artist_id: artists.artist_id})
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///artist_agencies.csv" as line
CREATE (ag:Agency) - [:REPRESENTS] -> (ar:Artist {track_artist_uri:line.track_artist_uri})
Пока я получаю это, каждый синий узел является дубликатом названия агентства. Вместо того, чтобы иметь один единственный агентский узел, который соединяется со всеми артистами через отношения: REPRESENTS. результат
Полагаю, моя проблема в том, что я не знаю, как связать таблицу исполнителей с таблицей agency_list через эту промежуточную таблицу artist_agencies. Есть ли лучший способ сделать это, или я на правильном пути?
Спасибо! Джоуи