From: | Andreas Joseph Krogh <andreak(at)officenet(dot)no> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: RE: Referencing named attribute in where clause doesn't work with7.1.2? |
Date: | 2001-08-08 14:41:06 |
Message-ID: | 3B714F82.D8912EEE@officenet.no |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Jeff Eckermann wrote:
>
> The WHERE clause is evaluated before your SELECT list is determined, so the
> aliased value cannot be used.
> You can put further NOT NULL tests into the subqueries to make sure that
> null values are not returned.
> Question: why not just join the tables explicitly?
:-) Because I'm not too familiar with joins.
> The more usual SQL
> approach would be something like:
>
> SELECT article.title_text_key, on_text.text_value AS title_text_value
> FROM article INNER JOIN (on_text INNER JOIN (code INNER JOIN code_group ON
> code.code_group_id = code.id) ON on_text.lang_id = code.id) ON
> article.title_text_key = on_text.text_key
> WHERE on_text.text_value IS NOT NULL;
>
> or whatever other tests you want. In this case, you can easily reference
> the fields by name.
The problem with the query above is that it doesn't include my
"code.code_key='lang.NO'" test.
I rephrased the query as follows:
SELECT article.title_text_key, on_text.text_value AS title_text_value
FROM article INNER JOIN (on_text INNER JOIN (code INNER JOIN code_group
ON
code.code_group_id = code_group.id) ON on_text.lang_id = code.id AND
code_group.description = 'lang' AND code.code_key = 'lang.NO') ON
article.title_text_key = on_text.text_key
WHERE on_text.text_value IS NOT NULL;
And now it works!
Thank you for helping me out.
--
Andreas Joseph Krogh <andreak(at)officenet(dot)no>
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Ruprecht | 2001-08-08 15:20:23 | Re: Functions returning more than one value |
Previous Message | Jeff Eckermann | 2001-08-08 13:49:04 | RE: Referencing named attribute in where clause doesn't work with 7.1.2? |