Question: In a WHERE part of query we have

```
SELECT * FROM SomeTable st
WHERE 
NOT EXISTS 
  (SELECT 1 FROM Tab t1 WHERE t1.A = st.A OR t1.B = st.A)
OR EXISTS 
  (SELECT 1 FROM Tab t2 WHERE (t2.A = st.A OR t2.B = st.A) AND t2.C IS NULL)

```

Seems like a good candidate for merging...
But I'm staring on that for an hour without any idea.

Would you have some thoughts?

Thanks,

Answer: 
```
SELECT distinct st.* 
FROM SomeTable st 
     left outer join Tab t
     on st.a in (t.a,t.b)
WHERE t.c is null

```

Sometimes the simplest answer is to use a join rather than an exists.
It *looks* as though you're trying to return all SomeTable values where there's no corresponding value on Tab where C is not null - in which case, the following should work:

```
SELECT * FROM SomeTable st
WHERE NOT EXISTS 
  (SELECT 1 FROM Tab t1 WHERE (t1.A = st.A OR t1.B = st.A) AND t2.C IS NOT NULL)

```

However, that's not *exactly* what your existing query does - in your query, if there are two corresponding records on Tab, where one record has a non-null value for C and the other is null, your query will return a corresponding row, but my query won't.