دمج الاستعلامات باستخدام WITH وUNION
تعلّم ربط مراحل الاستعلام باستخدام WITH ودمج مجموعات النتائج باستخدام UNION لإجراء استعلامات Cypher متقدمة.
دمج الاستعلامات باستخدام WITH وUNION درس مجاني في Neo4j Graph Database Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Neo4j Graph Database Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Neo4j Graph Database Fundamentals 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Why Chain Query Stages
Complex questions often need several steps: filter, aggregate, then filter again. Cypher uses WITH to pass results from one stage to the next.
Introducing WITH
WITH works like RETURN but feeds its output into the next part of the query instead of ending it.
MATCH (p:Person)-[:FRIEND]->(f)
WITH p, count(f) AS friendCount
WHERE friendCount > 3
RETURN p.name, friendCount;Filtering After Aggregation
You cannot put aggregate functions in a WHERE directly. Instead, aggregate with WITH, then filter the aggregated value in the following WHERE.
This is the Cypher equivalent of SQL's HAVING.
MATCH (c:City)<-[:LIVES_IN]-(p:Person)
WITH c, count(p) AS population
WHERE population > 1000
RETURN c.name, population;Carrying Variables Forward
Only variables listed in WITH stay in scope afterward. Anything omitted is dropped, so list everything you still need.
MATCH (p:Person)-[:BOUGHT]->(prod)
WITH p, collect(prod.name) AS products
RETURN p.name, products;Ordering and Limiting Mid-Query
WITH can include ORDER BY, SKIP, and LIMIT to shape intermediate results before the next stage.
MATCH (p:Person)
WITH p ORDER BY p.age DESC LIMIT 5
MATCH (p)-[:FRIEND]->(f)
RETURN p.name, f.name;Introducing UNION
UNION combines the results of two queries into one result set. Both sides must return the same column names.
MATCH (p:Person) RETURN p.name AS name
UNION
MATCH (c:Company) RETURN c.name AS name;UNION vs UNION ALL
UNION removes duplicate rows. UNION ALL keeps every row, including duplicates, and is faster when you know there are none.
MATCH (p:Person) RETURN p.name AS name
UNION ALL
MATCH (c:Company) RETURN c.name AS name;Combining WITH and UNION
You can aggregate within each side of a UNION using WITH, then merge the summaries. This builds powerful reporting queries.
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;Multiple WITH Stages
You can chain many WITH clauses to build a pipeline: each stage refines the data further.
MATCH (p:Person)-[:RATED]->(m:Movie)
WITH m, avg(p.rating) AS avgRating
WITH m, avgRating WHERE avgRating > 4
RETURN m.title, avgRating;Common Pitfalls
Watch out for:
- Forgetting to carry a needed variable through WITH
- Mismatched column names across UNION branches
- Using WITH when a simple WHERE would do
When to Use Each
Use WITH for multi-step pipelines and post-aggregation filtering. Use UNION to stack results from structurally different queries.
Quick Check
Check your understanding of query composition.
Recap
You learned to compose advanced queries:
- WITH pipes results between stages
- Filter aggregates after WITH (like HAVING)
- Only variables in WITH stay in scope
- UNION merges result sets; UNION ALL keeps duplicates
تعلم Neo4j Graph Database Fundamentals مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «دمج الاستعلامات باستخدام WITH وUNION» مجاني؟
نعم — نص درس «دمج الاستعلامات باستخدام WITH وUNION» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Neo4j Graph Database Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Neo4j Graph Database Fundamentals 4 دروس في المجموع.
ماذا ستتعلم في «دمج الاستعلامات باستخدام WITH وUNION»؟
تعلّم ربط مراحل الاستعلام باستخدام WITH ودمج مجموعات النتائج باستخدام UNION لإجراء استعلامات Cypher متقدمة. تتمرن على Neo4j Graph Database Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Neo4j Graph Database Fundamentals؟
لا تُشترط خبرة سابقة. Neo4j Graph Database Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «دمج الاستعلامات باستخدام WITH وUNION»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Neo4j Graph Database Fundamentals هذا؟
نعم. كل درس في Neo4j Graph Database Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تصفية النتائج وترتيبها
- التجميع والإسقاطات
- تحديث بيانات الرسم البياني وحذفها
- دمج الاستعلامات باستخدام WITH وUNION