

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 可能な場合は WITH 句を使用しない
<a name="best-practices-content-7"></a>

 openCypher の WITH 句は、その前にあるすべてが実行され、結果の値がクエリの残りの部分に渡される境界として機能します。WITH 句は、中間集計が必要な場合や結果の数を制限したい場合に必要ですが、それ以外の場合は WITH 句の使用を避ける必要があります。一般的なガイダンスでは、これらの単純な WITH 句 (集計、順序、制限なし) を削除して、クエリプランナーがクエリ全体で作業してグローバルに最適なプランを作成できるようにします。例えば、`India` に住むすべてのユーザーを返すクエリを作成したとします。

```
MATCH (person)-[:lives_in]->(city)
WITH person, city
MATCH (city)-[:part_of]->(country {name: 'India'})
RETURN collect(person) AS result
```

 上記のバージョンでは、WITH 句は `(person)-[:lives_in]->(city)` より前のパターン `(city)-[:part_of]->(country {name: 'India'})` (より制限的) の配置を制限します。そのため、このプランは準最適となります。このクエリを最適化するには、WITH 句を削除し、プランナーが最適なプランを計算できるようにします。

```
MATCH (person)-[:lives_in]->(city)
MATCH (city)-[:part_of]->(country {name: 'India'})
RETURN collect(person) AS result
```