From: | Carla <cgourofino(at)hotmail(dot)com> |
---|---|
To: | ai <listar(at)mail(dot)ru> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Problem with nested left-joins and coalesce |
Date: | 2011-08-08 19:14:01 |
Message-ID: | CAM4nCbbikPJ-cjacYPGaqbP104MPf1RguvhvutHdCB9P=N1iLA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Sorry, my mistake. =( Now I understood the whole problem.
2011/8/8 ai <listar(at)mail(dot)ru>
> Hi Carla!****
>
> ** **
>
> Well, maybe I too simplified my production code and now I can't see
> something very simple, BUT I'm pretty sure that there isn't any original
> column value2 in sub4 except that I created with COALESCE...****
>
> ** **
>
> Meanwhile, I want to note, that I made a little mistake in presented
> example: instead of "wrong" full example I wrote a "correct" one (but I'm
> sure you understood this because of my further explanation of "workaround"
> =))****
>
> ** **
>
> My mistake =(( don't kill me - I spend too much time with this piece of
> code today...****
>
> ** **
>
> but just in case here is "wrong" (difference is in that "SELECT sub3.key3,
> sub4.value2 FROM" ):****
>
> ** **
>
> SELECT * FROM****
>
> (****
>
> SELECT 1 as key1****
>
> ) sub1****
>
> LEFT JOIN ****
>
> (****
>
> SELECT sub3.key3, sub4.value2 FROM****
>
> (****
>
> SELECT 1 as key3****
>
> ) sub3****
>
> LEFT JOIN ****
>
> (****
>
> SELECT sub5.key5, COALESCE(sub6.value1, 1)
> as value2****
>
> FROM****
>
> (****
>
> SELECT 1 as key5****
>
> ) sub5****
>
> LEFT JOIN****
>
> (****
>
> SELECT 1 as key6, value1***
> *
>
> FROM****
>
> (****
>
> SELECT
> NULL::integer as value1****
>
> ) sub7****
>
> WHERE false****
>
> ) sub6 ON false****
>
> ****
>
> )****
>
> sub4 ON sub4.key5=sub3.key3****
>
> )****
>
> sub2 ON sub1.key1 = sub2.key3****
>
> ** **
>
> best regards,****
>
> alex****
>
> ** **
>
> *From:* pgsql-sql-owner(at)postgresql(dot)org [mailto:
> pgsql-sql-owner(at)postgresql(dot)org] *On Behalf Of *Carla
> *Sent:* Monday, August 08, 2011 10:03 PM
> *To:* ai
> *Cc:* pgsql-sql(at)postgresql(dot)org
> *Subject:* Re: [SQL] Problem with nested left-joins and coalesce****
>
> ** **
>
> Hi Alex!
> When you wrote "COALESCE(sub6.value1, 1) as value2", you created a column
> "value2" that is different of the original column "sub4.value2".
> Try running "SELECT sub3.key3, sub4.value2, value2 FROM ..." and you'll get
> the result:****
>
> key1;key3;value2;value2****
>
> 1;1;null;1
> It happens because the first column "value2" (i.e. "sub4.value2") doesn't
> have COALESCE on it.
>
> ****
>
> 2011/8/8 ai <listar(at)mail(dot)ru>****
>
> Hi!****
>
> I have strange issue with nested left-joins in postgresql...****
>
> It's hard to explain, but easy to show =)****
>
> here we are:****
>
> ****
>
> SELECT * FROM****
>
> (****
>
> SELECT 1 as key1****
>
> ) sub1****
>
> LEFT JOIN ****
>
> (****
>
> SELECT sub3.key3, value2 FROM****
>
> (****
>
> SELECT 1 as key3****
>
> ) sub3****
>
> LEFT JOIN ****
>
> (****
>
> SELECT sub5.key5, COALESCE(sub6.value1, 1)
> as value2****
>
> FROM****
>
> (****
>
> SELECT 1 as key5****
>
> ) sub5****
>
> LEFT JOIN****
>
> (****
>
> SELECT 1 as key6, value1***
> *
>
> FROM****
>
> (****
>
> SELECT
> NULL::integer as value1****
>
> ) sub7****
>
> WHERE false****
>
> ) sub6 ON false****
>
> ****
>
> )****
>
> sub4 ON sub4.key5=sub3.key3****
>
> )****
>
> sub2 ON sub1.key1 = sub2.key3****
>
> ****
>
> The result of this query:****
>
> key1;key3;value2****
>
> 1;1;NULL****
>
> ****
>
> And this is the problem - value2 can't be NULL because of COALESCE in sub4
> (at least I think that it can't be =))****
>
> Anyway if we'll change ****
>
> SELECT sub3.key3, sub4.value2 FROM****
>
> with****
>
> SELECT sub3.key3, value2 FROM****
>
> we will got correct result:****
>
> key1;key3;value2****
>
> 1;1;1****
>
> Is there something wrong with my mind&hands? or is it a bug?****
>
> ****
>
> Thanks in advance!****
>
> ****
>
> Kind regards****
>
> Alex****
>
> ****
>
> ** **
>
From | Date | Subject | |
---|---|---|---|
Next Message | Oliveiros d'Azevedo Cristina | 2011-08-09 15:34:26 | Re: Mysterious column "name" |
Previous Message | ai | 2011-08-08 15:34:56 | Re: Problem with nested left-joins and coalesce |