Re: Why is this a cross join? - Mailing list pgsql-general

From Tony Theodore
Subject Re: Why is this a cross join?
Date
Msg-id D3884E3C-7DC5-475E-BCE9-2F6E6354A46A@gmail.com
Whole thread Raw
In response to Re: Why is this a cross join?  (Tim Uckun <timuckun@gmail.com>)
List pgsql-general
On 18/02/2013, at 9:09 AM, Tim Uckun <timuckun@gmail.com> wrote:

>>=20
>> In some way, every join is a cross join, with the results filtered =
according to the specificity of the join conditions. In this case:
>>=20
>> inner join model_configurations mc on left(crm.customer_class, 6) =3D =
left(mc.sap_code,6)
>>=20
>> "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.
>>=20
>=20
> I guess I am not explaining it properly..
>=20
> 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

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Why is this a cross join?
Next
From: John R Pierce
Date:
Subject: Re: Why is this a cross join?