Grundlæggende om grafdatabasen Neo4j · Lektion

Kombination af forespørgsler med WITH og UNION

Lær at kæde forespørgselsfaser sammen med WITH og samle resultatsæt med UNION til avancerede Cypher-forespørgsler.

Lektion 4 af 413 trin

Kombination af forespørgsler med WITH og UNION er en gratis Grundlæggende om grafdatabasen Neo4j-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende om grafdatabasen Neo4j, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende om grafdatabasen Neo4j-kurset indeholder 4 lektioner i alt.

Hvorfor kæde forespørgselstrin

Komplekse spørgsmål kræver ofte flere trin: filtrer, aggregér og filtrer derefter igen. Cypher bruger WITH til at overføre resultater fra ét trin til det næste.

Introduktion til WITH

WITH fungerer ligesom RETURN, men sender outputtet videre til næste del af forespørgslen i stedet for at afslutte den.

MATCH (p:Person)-[:FRIEND]->(f)
WITH p, count(f) AS friendCount
WHERE friendCount > 3
RETURN p.name, friendCount;

Filtrering efter aggregering

Du kan ikke placere aggregeringsfunktioner direkte i en WHERE. Aggregér i stedet med WITH, og filtrér derefter den aggregerede værdi i den efterfølgende WHERE.

Det svarer i Cypher til SQL's HAVING.

MATCH (c:City)<-[:LIVES_IN]-(p:Person)
WITH c, count(p) AS population
WHERE population > 1000
RETURN c.name, population;

Videreførelse af variabler

Kun variabler, der er angivet i WITH, forbliver tilgængelige bagefter. Alt, der udelades, fjernes, så angiv alt, hvad du stadig har brug for.

MATCH (p:Person)-[:BOUGHT]->(prod)
WITH p, collect(prod.name) AS products
RETURN p.name, products;

Sortering og begrænsning midt i forespørgslen

WITH kan indeholde ORDER BY, SKIP og LIMIT, så du kan forme mellemresultaterne før næste trin.

MATCH (p:Person)
WITH p ORDER BY p.age DESC LIMIT 5
MATCH (p)-[:FRIEND]->(f)
RETURN p.name, f.name;

Introduktion til UNION

UNION kombinerer resultaterne af to forespørgsler til ét resultatsæt. Begge sider skal returnere de samme kolonnenavne.

MATCH (p:Person) RETURN p.name AS name
UNION
MATCH (c:Company) RETURN c.name AS name;

UNION kontra UNION ALL

UNION fjerner dublerede rækker. UNION ALL beholder alle rækker, også dubletter, og er hurtigere, når du ved, at der ikke er nogen dubletter.

MATCH (p:Person) RETURN p.name AS name
UNION ALL
MATCH (c:Company) RETURN c.name AS name;

Kombination af WITH og UNION

Du kan aggregere på hver side af en UNION ved hjælp af WITH og derefter samle opsummeringerne. Det gør det muligt at opbygge effektive rapporteringsforespørgsler.

MATCH (o:Order) WITH 'orders' AS kind, count(o) AS n RETURN kind, n
UNION
MATCH (u:User) WITH 'users' AS kind, count(u) AS n RETURN kind, n;

Flere WITH-trin

Du kan kæde mange WITH-sætninger sammen for at opbygge et databehandlingsforløb: Hvert trin forfiner dataene yderligere.

MATCH (p:Person)-[:RATED]->(m:Movie)
WITH m, avg(p.rating) AS avgRating
WITH m, avgRating WHERE avgRating > 4
RETURN m.title, avgRating;

Almindelige faldgruber

Vær opmærksom på:

  • At glemme at føre en nødvendig variabel videre gennem WITH
  • Kolonnenavne, der ikke stemmer overens på tværs af UNION-grene
  • At bruge WITH, når en simpel WHERE ville være tilstrækkelig

Hvornår skal du bruge hvad

Brug WITH til flertrinsforløb og filtrering efter aggregering. Brug UNION til at samle resultater fra forespørgsler med forskellig struktur.

Hurtigt tjek

Tjek din forståelse af forespørgselssammensætning.

Opsummering

Du lærte at sammensætte avancerede forespørgsler:

  • WITH sender resultater mellem trin
  • Filtrér aggregater efter WITH (ligesom HAVING)
  • Kun variabler i WITH forbliver tilgængelige
  • UNION sammenfletter resultatsæt, mens UNION ALL beholder dubletter
Gratis at komme i gang

Lær Grundlæggende om grafdatabasen Neo4j med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Kombination af forespørgsler med WITH og UNION” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende om grafdatabasen Neo4j, inklusive “Kombination af forespørgsler med WITH og UNION”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende om grafdatabasen Neo4j-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Kombination af forespørgsler med WITH og UNION”?

Lær at kæde forespørgselsfaser sammen med WITH og samle resultatsæt med UNION til avancerede Cypher-forespørgsler. Du øver dig i Grundlæggende om grafdatabasen Neo4j med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende om grafdatabasen Neo4j?

Der kræves ingen tidligere erfaring. Grundlæggende om grafdatabasen Neo4j på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Kombination af forespørgsler med WITH og UNION”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende om grafdatabasen Neo4j-lektion?

Ja. Alle Grundlæggende om grafdatabasen Neo4j-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Filtrering og sortering af resultater
  2. Aggregering og projektioner
  3. Opdatering og sletning af grafdata
  4. Kombination af forespørgsler med WITH og UNION
← Tilbage til Grundlæggende om grafdatabasen Neo4j