Re: RE: Referencing named attribute in where clause doesn't work with7.1.2?
| От | Andreas Joseph Krogh |
|---|---|
| Тема | Re: RE: Referencing named attribute in where clause doesn't work with7.1.2? |
| Дата | |
| Msg-id | 3B714F82.D8912EEE@officenet.no обсуждение исходный текст |
| Ответ на | RE: Referencing named attribute in where clause doesn't work with 7.1.2? (Jeff Eckermann <jeckermann@verio.net>) |
| Список | 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@officenet.no>
В списке pgsql-sql по дате отправления: