Search Postgresql Archives

Re: Why is this a cross join?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux