Menggabungkan Pertanyaan dengan WITH dan UNION
Pelajari cara merangkaikan peringkat pertanyaan menggunakan WITH dan menggabungkan set hasil menggunakan UNION untuk pertanyaan Cypher lanjutan.
Menggabungkan Pertanyaan dengan WITH dan UNION ialah pelajaran Asas Pangkalan Data Graf Neo4j percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Pangkalan Data Graf Neo4j, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Pangkalan Data Graf Neo4j merangkumi sejumlah 4 pelajaran.
Sebab Peringkat Pertanyaan Dirangkaikan
Soalan kompleks selalunya memerlukan beberapa langkah: menapis, mengagregat, kemudian menapis semula. Cypher menggunakan WITH untuk menghantar hasil dari satu peringkat ke peringkat seterusnya.
Pengenalan kepada WITH
WITH berfungsi seperti RETURN tetapi menyalurkan outputnya ke bahagian pertanyaan seterusnya dan bukannya menamatkan pertanyaan.
MATCH (p:Person)-[:FRIEND]->(f)
WITH p, count(f) AS friendCount
WHERE friendCount > 3
RETURN p.name, friendCount;Menapis Selepas Pengagregatan
Anda tidak boleh meletakkan fungsi pengagregatan secara langsung dalam WHERE. Sebaliknya, lakukan pengagregatan dengan WITH, kemudian tapis nilai yang diagregat dalam WHERE berikutnya.
Ini ialah padanan Cypher bagi HAVING dalam SQL.
MATCH (c:City)<-[:LIVES_IN]-(p:Person)
WITH c, count(p) AS population
WHERE population > 1000
RETURN c.name, population;Membawa Pemboleh Ubah ke Hadapan
Hanya pemboleh ubah yang disenaraikan dalam WITH kekal dalam skop selepas itu. Apa-apa yang ditinggalkan akan digugurkan, jadi senaraikan semua perkara yang masih anda perlukan.
MATCH (p:Person)-[:BOUGHT]->(prod)
WITH p, collect(prod.name) AS products
RETURN p.name, products;Menyusun dan Mengehadkan di Tengah Pertanyaan
WITH boleh menyertakan ORDER BY, SKIP dan LIMIT untuk membentuk hasil perantaraan sebelum peringkat seterusnya.
MATCH (p:Person)
WITH p ORDER BY p.age DESC LIMIT 5
MATCH (p)-[:FRIEND]->(f)
RETURN p.name, f.name;Pengenalan kepada UNION
UNION menggabungkan hasil dua pertanyaan menjadi satu set hasil. Kedua-dua bahagian mesti mengembalikan nama lajur yang sama.
MATCH (p:Person) RETURN p.name AS name
UNION
MATCH (c:Company) RETURN c.name AS name;UNION berbanding UNION ALL
UNION membuang baris pendua. UNION ALL mengekalkan setiap baris, termasuk pendua, dan lebih pantas apabila anda tahu tiada pendua.
MATCH (p:Person) RETURN p.name AS name
UNION ALL
MATCH (c:Company) RETURN c.name AS name;Menggabungkan WITH dan UNION
Anda boleh melakukan pengagregatan dalam setiap bahagian UNION menggunakan WITH, kemudian menggabungkan ringkasan tersebut. Ini membina pertanyaan pelaporan yang berkuasa.
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;Berbilang Peringkat WITH
Anda boleh merangkaikan banyak klausa WITH untuk membina pipeline: setiap peringkat memperhalus data dengan lebih lanjut.
MATCH (p:Person)-[:RATED]->(m:Movie)
WITH m, avg(p.rating) AS avgRating
WITH m, avgRating WHERE avgRating > 4
RETURN m.title, avgRating;Perangkap Lazim
Berhati-hati terhadap:
- Terlupa membawa pemboleh ubah yang diperlukan melalui WITH
- Nama lajur yang tidak sepadan merentas cabang UNION
- Menggunakan WITH apabila WHERE yang ringkas sudah memadai
Bila Perlu Menggunakan Setiap Satu
Gunakan WITH untuk pipeline berbilang langkah dan penapisan selepas pengagregatan. Gunakan UNION untuk menyusun hasil daripada pertanyaan yang berbeza strukturnya.
Semakan Pantas
Semak pemahaman anda tentang penggubahan pertanyaan.
Imbas Kembali
Anda telah belajar menggubah pertanyaan lanjutan:
- WITH menyalurkan hasil antara peringkat
- Menapis hasil agregat selepas WITH (seperti HAVING)
- Hanya pemboleh ubah dalam WITH kekal dalam skop
- UNION menggabungkan set hasil; UNION ALL mengekalkan pendua
Pelajari Asas Pangkalan Data Graf Neo4j dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Menggabungkan Pertanyaan dengan WITH dan UNION” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Pangkalan Data Graf Neo4j, termasuk “Menggabungkan Pertanyaan dengan WITH dan UNION”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Pangkalan Data Graf Neo4j merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menggabungkan Pertanyaan dengan WITH dan UNION”?
Pelajari cara merangkaikan peringkat pertanyaan menggunakan WITH dan menggabungkan set hasil menggunakan UNION untuk pertanyaan Cypher lanjutan. Anda berlatih Asas Pangkalan Data Graf Neo4j menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Asas Pangkalan Data Graf Neo4j?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Pangkalan Data Graf Neo4j di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menggabungkan Pertanyaan dengan WITH dan UNION” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Pangkalan Data Graf Neo4j ini?
Ya. Setiap pelajaran Asas Pangkalan Data Graf Neo4j menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menapis dan Menyusun Keputusan
- Pengagregatan dan Unjuran
- Mengemas Kini dan Memadam Data Graf
- Menggabungkan Pertanyaan dengan WITH dan UNION