On 18/02/2013, at 9:09 AM, Tim Uckun <timuckun@xxxxxxxxx> wrote: >> >> In some way, every join is a cross join, with the results filtered according to the specificity of the join conditions. In this case: >> >> inner join model_configurations mc on left(crm.customer_class, 6) = left(mc.sap_code,6) >> >> "customer_class" sounds like a fairly generic sort of field, so you'd expect many matches. Truncating the fields is likely to make this even less specific, returning more results. >> > > I guess I am not explaining it properly.. > > Say I created new columns on both tables called "first_6" and > populated them with the substrings. If I did a inner join or a left > join on those fields would I still get a cross join? No, it would be no different if you created new columns - the join condition is the same. You're not actually getting a cross join, that would be many more records than 9million - you're just not setting a specific enough filter. Cheers, Tony -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general