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. >
