^Pa čekaj, zašto ti je problem da složiš upit sa drugim poljima - ti uvek gledaš samo ID na kraju (tj. uvek imaš select id.. bilo u glavnom upitu ili ovim ispod a WHERE polje se menja), slično kao ovo gore:
select id from t1
where
1=1 /* include all */
and
/* presek 2. i 3. pravila */
id not in
(
select id from t1 where id in (1,3,5,7)
and id not in (3,4,5)
)
Naravno, ovo gore je bolje napisati pomoću JOINa, čisto performansi radi.
Koliko vidim, imao bi nekoliko šablona koje bi onda složio u jedan upit, samo je zavisno šta ide kojim redom. Ima malo da se cima, nije da nema