Your query is wrong:

Joined rows will produce a cartesian product of all the row pairs, thus you
will have a row Person[100, 'Name100'] that correctly passed the first join
and paired with n['Name200'] in the second join. Since 'Name100' <>
'Name200', it will be correctly returned in the result set.

Sergi

2017-01-04 14:06 GMT+03:00 Anil <[email protected]>:

> HI,
>
> As per ignite documentation, IN operator does not use index and has to be
> use as *join table.*
>
> Hoping this holds good for* NOT IN *operator as well.
>
> String sql = "SELECT p.*  from PERSON_CACHE.PERSON p join table(joinId
> varchar(50) = ?) i on i.joinId = p.personId join table(joinId varchar(50) =
> ?) n on n.joinId <> p.name";
> PreparedStatement statement = conn.prepareStatement(sql);
> statement.setFetchSize(100);
> statement.setObject(1, new String[]{"100", "200", "300"});
> statement.setObject(2, new String[]{"Name100", "Name200"});
>
>
> Expected results are Name300
> Actual output :
> Name100
> Name200
> Name300
> Name300
>
> Did you see any issue with the query ? please help.
>
> thanks.
>

Reply via email to