# NOT IN replacement in elasticsearch sql query

**URL:** https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463
**Category:** Elasticsearch
**Created:** [August 6, 2024, 10:10am UTC](https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463 "2024-08-06T10:10:48Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![HelloWorld3](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/helloworld3/32/129844_2.png) [@HelloWorld3](https://discuss.elastic.co/u/HelloWorld3)
#### Post date: [August 6, 2024, 10:10am UTC](https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463/1 "2024-08-06T10:10:48Z")

</div>

I have an sql query which filters tables with conditions like not in, i want the same query for elasticsearch sql access.

SELECT TABLE\_SCHEMA, TABLE\_NAME FROM INFORMATION\_SCHEMA.TABLES WHERE TABLE\_TYPE = 'BASE TABLE'AND TABLE\_SCHEMA NOT IN(" + schema + ") AND TABLE\_NAME LIKE '%" + text + "%' ORDER BY TABLE\_NAME ASC".

Can anyone please provide any suitable solution. I learnt that in , not in or subqueries of advanced filtering are also not supported.

---

<div class="post-metadata">

### Author: ![Wolfram\_Haussig](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wolfram_haussig/32/70528_2.png) [@Wolfram\_Haussig](https://discuss.elastic.co/u/Wolfram_Haussig)
#### Post date: [August 6, 2024, 10:38am UTC](https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463/2 "2024-08-06T10:38:15Z")

</div>

Hi,

You could try if `rlike` (see [docs](https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-like-rlike-operators.html#sql-rlike-operator)) is fast enough for your requirements:

```sql
SELECT
  TABLE_SCHEMA, TABLE_NAME
FROM 
  INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_TYPE = 'BASE TABLE' AND
  TABLE_SCHEMA NOT RLIKE " + schema + " AND
  TABLE_NAME LIKE '%" + text + "%'
ORDER BY
  TABLE_NAME ASC

```

where `schema` is a string similar to: `SYS|SCHEMA1|SCHEMA2`

Best regards  
Wolfram

---

<div class="post-metadata">

### Author: ![HelloWorld3](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/helloworld3/32/129844_2.png) [@HelloWorld3](https://discuss.elastic.co/u/HelloWorld3)
#### Post date: [August 6, 2024, 10:47am UTC](https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463/3 "2024-08-06T10:47:59Z")

</div>

No, I don't think rlike will suit my requirement, I want the extracted table to me not present in the specific schema..rlike is something like regex filtering for like..I don't want that

My current basic sql query is -- SHOW TABLES LIKE '%{table\_name}%'

---

<div class="post-metadata">

### Author: ![Wolfram\_Haussig](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wolfram_haussig/32/70528_2.png) [@Wolfram\_Haussig](https://discuss.elastic.co/u/Wolfram_Haussig)
#### Post date: [August 6, 2024, 11:06am UTC](https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463/4 "2024-08-06T11:06:25Z")

</div>

Then I am either missing something or your example is wrong - my code does exactly the same as yours:

> TABLE\_SCHEMA NOT IN(" + schema + ")

> TABLE\_SCHEMA NOT RLIKE " + schema + "

---

<div class="post-metadata">

### Author: ![HelloWorld3](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/helloworld3/32/129844_2.png) [@HelloWorld3](https://discuss.elastic.co/u/HelloWorld3)
#### Post date: [August 6, 2024, 11:26am UTC](https://discuss.elastic.co/t/not-in-replacement-in-elasticsearch-sql-query/364463/5 "2024-08-06T11:26:14Z")

</div>

Hi,

The thing is the query I have given initially doesn't work in my elasticsearch sql access engine at all, see I am currently only able to use query like SHOW TABLES or SHOW CATALOG, and when I give the rlike query in support with SHOW TABLES as SHOW TABLES NOT RLIKE {1}, or SELECT TABLES NOT RLIKE {1}, And i also need to combine this with a like %sample\_text% ,.. it provides an exception like this---  
"type": "parsing\_exception",  
"reason": "line 1:13: mismatched input 'NOT' expecting {, 'ANALYZE', 'ANALYZED', 'CATALOG', 'CATALOGS', 'COLUMNS', 'CURRENT\_DATE', 'CURRENT\_TIME', 'CURRENT\_TIMESTAMP', 'DAY', 'DEBUG', 'EXECUTABLE', 'EXPLAIN', 'FIRST', 'FORMAT', 'FULL', 'FUNCTIONS', 'GRAPHVIZ', 'HOUR', 'INCLUDE', 'INTERVAL', 'LAST', 'LIKE', 'LIMIT', 'MAPPED', 'MINUTE', 'MONTH', 'OPTIMIZED', 'PARSED', 'PHYSICAL', 'PIVOT', 'PLAN', 'RLIKE', 'QUERY', 'SCHEMAS', 'SECOND', 'SHOW', 'SYS', 'TABLES', 'TEXT', 'TOP', 'TYPE', 'TYPES', 'VERIFY', 'YEAR', IDENTIFIER, DIGIT\_IDENTIFIER, TABLE\_IDENTIFIER, QUOTED\_IDENTIFIER, BACKQUOTED\_IDENTIFIER}"  
}. Can you tell me something that will suit this.. or am I wrong here somewhere
