>SELECT i.* from table1 i > WHERE (i.field1 = 'FA' and field2 IN('AAA','BBB') AND i.field3 = 0) > AND NOT EXISTS (SELECT * from table3 a WHERE a.table2id = i.table2id AND a.field4 = i.field4)) > AND (EXISTS (SELECT * from table2 s WHERE s.table2id = i.table2id AND s.fielda <> 'X' AND s.fieldb <> 'I') > OR NOT EXISTS (SELECT * from table2 s WHERE s.table2id = i.table2id)) >>>I think this works:
>>SELECT i.* from table1 i >> WHERE (((i.field1 = 'FA' and (field2 = 'AAA' or field2 = 'BBB') AND i.field3 = 0) >> AND EXISTS (select * from table2 s where s.table2id = i.table2id AND s.fielda <> 'X' >> AND s.fieldb <> 'I') >> AND NOT EXISTS (SELECT * from table3 a where a.table2id = i.table2id >> AND a.field4 = i.field4)) >> OR >> ((i.field1 = 'FA' and (field2 = 'AAA' or field2 = 'BBB') AND i.field3 = 0) >> AND NOT EXISTS (select * from table2 s where s.table2id = i.table2id) >> AND NOT EXISTS (SELECT * from table3 a where a.table2id = i.table2id >> AND a.field4 = i.field4))) >>