Tom Lane wrote:

I think the problem was that he had

        select ... from a, b full join c on ... where ...

where table b is big and you only need a few rows from it, so it really
needs to be joined last, but the above forced doing it first.  It wasn't
clear to me why he wanted the full join at all (in fact, you could see
from the plan that the planner had been able to reduce it to a left join
because there were WHERE clauses that'd discard one set of null-extended
rows anyway).  Without knowing that, it's hard to say whether there's
another way to get what he wants.

Without the outer join, the output was missing the joined rows from a and b when there was no matching row in c. (Tables a and c both referenced b.)

I suppose I could have used a left join instead of a full join, but either way the results were much slower than an inner join, and I was able to redo some other logic to let an inner join work just fine.

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to