# How to inner join 3 index

**URL:** <https://discuss.elastic.co/t/how-to-inner-join-3-index/153421>\
**Category:** Elasticsearch\
**Created:** [October 22, 2018, 2:31pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421 "2018-10-22T14:31:26Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_Menotti](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gian_carlo_menotti/32/33774_2.png) [@Gian\_Carlo\_Menotti](https://discuss.elastic.co/u/Gian_Carlo_Menotti)\
**Post date:** [October 22, 2018, 2:31pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/1 "2018-10-22T14:31:26Z")

</div>

Hi, i need to inner join 3 index in elastic for crate 1, is this possible? where can i found documentation, the 3 tables are in already in elastic  
the results should be something like this

Select a.IdEntry, b.ItemCode, c.Date  
from  
TableA as a  
inner join  
TableB as b on a.idEntry = b.idEntry  
inner join  
TableC as c on b.itemCode = c.itemCode

here is my sample

 ![imag1](https://us1.discourse-cdn.com/elastic/original/3X/0/6/06bcf094fc5a2f6b7a485c89732c0a78d2f3fcc3.png)

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 22, 2018, 3:12pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/2 "2018-10-22T15:12:59Z")

</div>

Elasticsearch does not support joins, so you are probably better off altering your data model, denormalising your data.

---

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_Menotti](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gian_carlo_menotti/32/33774_2.png) [@Gian\_Carlo\_Menotti](https://discuss.elastic.co/u/Gian_Carlo_Menotti)\
**Post date:** [October 22, 2018, 4:00pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/3 "2018-10-22T16:00:50Z")

</div>

Thanks for your reply, can i cant create parent/child with the data is already indexed?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 22, 2018, 4:25pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/4 "2018-10-22T16:25:02Z")

</div>

Parent-child relationships in Elasticsearch is one way to model a relationship, but is not a generic join. It also requires special mappings and that all related data are located in the same shard, so would require reindexing.

I would recommend rethinking you data model with a document centric view rather than try to implement some kind of relational model.

---

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_Menotti](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gian_carlo_menotti/32/33774_2.png) [@Gian\_Carlo\_Menotti](https://discuss.elastic.co/u/Gian_Carlo_Menotti)\
**Post date:** [October 22, 2018, 8:28pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/5 "2018-10-22T20:28:26Z")

</div>

Thx for your advices, one more question, i have 3 tables in sql, with more than 10 million of records on each one, i'm using the jdbc driver to move data to to elastic, what do you recommend to do for a view that takes 45 minutes to retrieve the results. in the view i use ( MIN, MAX, HAVING, GROUPING)

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 23, 2018, 5:56am UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/6 "2018-10-23T05:56:45Z")

</div>

I am afraid I won't be able to help you optimise that query so it runs faster if that is the problem. If the issue is with Logstash processing the data, it can not go faster than the slowest downstream system, so you may want to look at the throughput your destinations support. 10 million over 45 minutes is just 3.7k EPS, which does not sound much for Logstash, but it may help if you share your config so we can see if there are any issues with it.

---

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_Menotti](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gian_carlo_menotti/32/33774_2.png) [@Gian\_Carlo\_Menotti](https://discuss.elastic.co/u/Gian_Carlo_Menotti)\
**Post date:** [October 23, 2018, 4:58pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/7 "2018-10-23T16:58:55Z")

</div>

ok this is my scenario, i denormalize my 3 tables to 1 table, then i move it to elastic without my filters (see Picture B) because if i put it on the statement it will not work (see picture A). What i need is to replicate the query on elastic, is this possible? or what other suggestion would you recommend.

(Picture A)

 ![query2](https://us1.discourse-cdn.com/elastic/original/3X/f/8/f8fd69d2bcb2e26fda5f0f217b8ff32ebdc3f343.png)

(Picture B)

 ![query1](https://us1.discourse-cdn.com/elastic/original/3X/c/6/c6d2bd2ae695bb360c643f00ceec6778dbf8f2c0.jpeg)

---

<div class="post-metadata">

**Author:** ![Gian\_Carlo\_Menotti](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gian_carlo_menotti/32/33774_2.png) [@Gian\_Carlo\_Menotti](https://discuss.elastic.co/u/Gian_Carlo_Menotti)\
**Post date:** [October 24, 2018, 7:07pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/8 "2018-10-24T19:07:43Z")

</div>

any advice?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [October 24, 2018, 7:10pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/9 "2018-10-24T19:10:28Z")

</div>

I don't know the data model nor the problem you are looking to solve, so do not really have any suggestions.

---

<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:** [November 21, 2018, 7:10pm UTC](https://discuss.elastic.co/t/how-to-inner-join-3-index/153421/10 "2018-11-21T19:10:29Z")

</div>

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