Fernando Schapachnik <fernando@xxxxxxxxxxxx> writes: > Now, combined (sorry for the convoluted query, it is build > automatically by an app). > EXPLAIN SELECT DISTINCT p.id > FROM partes_tecnicos p, > rel_usr_sector_parte_tecnico r, active_users u > WHERE ((r.id_parte_tecnico=p.id AND r.id_usr=u.id AND > u.login='xxx' AND r.id_sector=p.id_sector_actual AND > p.id_cola_por_ambito=1) > OR p.id_cola_por_ambito=1) > AND p.id_situacion!=6; Is this query really what you want to do? Because the OR overrides all the join conditions, meaning that rows having p.id_cola_por_ambito=1 AND p.id_situacion!=6 must produce Cartesian products against every row in each of the other tables. I think your SQL-building app is broken. regards, tom lane