# Elastiscserach Sous requête

**URL:** <https://discuss.elastic.co/t/elastiscserach-sous-requete/119826>\
**Category:** Discussions en français\
**Created:** [February 14, 2018, 3:11pm UTC](https://discuss.elastic.co/t/elastiscserach-sous-requete/119826 "2018-02-14T15:11:00Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sabdoul](https://avatars.discourse-cdn.com/v4/letter/s/74df32/32.png) [@sabdoul](https://discuss.elastic.co/u/sabdoul)\
**Post date:** [February 14, 2018, 3:11pm UTC](https://discuss.elastic.co/t/elastiscserach-sous-requete/119826/1 "2018-02-14T15:11:01Z")

</div>

Bonjour,

je cherche le moyen de faire une sous requête qui me retourne une liste de noms et ensuite j’exclus les noms de cette liste dans les résultats à afficher.  
Exemple en SQL:

```
    Select NOM from Table where NOM not in (select NOM from Table where Prenom='Paul')

```

Après des recherches sur google sans succès je viens vers vous pour avoir une solution car on dit qu'une sous requête n'est pas encore possible avec elasticsearch.  
Quelle pourrait être la solution pour transcrire cette requête en elasticsearch.

Merci!

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 14, 2018, 7:05pm UTC](https://discuss.elastic.co/t/elastiscserach-sous-requete/119826/3 "2018-02-14T19:05:27Z")

</div>

Il n'y a pas de notion de join dans elasticsearch.

Donc faire une query qui renvoie un sous-ensemble qui sert ensuite comme paramètre d'une autre query n'est pas faisable de façon simple.

Le mieux est de réfléchir au modèle des documents.

Un exemple concret?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [February 14, 2018, 7:08pm UTC](https://discuss.elastic.co/t/elastiscserach-sous-requete/119826/4 "2018-02-14T19:08:11Z")

</div>

J'ajoute qu'il existe le type `join` dans elasticsearch, mais c'est à utiliser en dernier recours à mon avis.

---

<div class="post-metadata">

**Author:** ![sabdoul](https://avatars.discourse-cdn.com/v4/letter/s/74df32/32.png) [@sabdoul](https://discuss.elastic.co/u/sabdoul)\
**Post date:** [February 15, 2018, 9:02am UTC](https://discuss.elastic.co/t/elastiscserach-sous-requete/119826/5 "2018-02-15T09:02:27Z")

</div>

Bonjour,  
Merci de me répondre.  
Ce que je veux faire c'est avec les logs récoltés avec Metricbeat sur les postes de travail, savoir quel logiciel n'a pas été utilisé pendant une période donné par le poste de travail.  
Exemple sur une plage de 15 mn, un logiciel ne sera pas utilisé par le poste à la 2ème minute et le sera peut être à la 8ème minute. Ainsi si je filtre avec NOT dans kibana sur ces 15mn, le poste de travail apparaîtra comme n'ayant pas utilisé le logiciel car dans les logs à la 2ème minute il n'a pas été utilisé alors qu'il l'a été à la 8 eme minute.  
Pour éviter cela je veux faire un e sous requête qui me ramène les postes qui ont utilisé un logiciel donné et par la suite les exclus dans un second filtre comme cet exemple en SQL:

```
    Select PC from INDEX where PC not in (select PC from INDEX where system.process.name='WINWORD.EXE')

```

Merci!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 15, 2018, 9:02am UTC](https://discuss.elastic.co/t/elastiscserach-sous-requete/119826/6 "2018-03-15T09:02:51Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
