Re: reforming query for 7.0.2

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: reforming query for 7.0.2
Дата
Msg-id web-621107@davinci.ethosmedia.com
обсуждение исходный текст
Ответ на reforming query for 7.0.2  (Markus Bertheau <twanger@bluetwanger.de>)
Ответы Re: reforming query for 7.0.2  (Markus Bertheau <twanger@bluetwanger.de>)
Список pgsql-sql
Markus,

> how do I reform this query to work with 7.0.2?

Better question:  Why are you working with 7.0.2?  Even the mass-market Linuxdistros (like Red Hat and SuSE) now come
with7.1.x.
 

> select * from personen join (select count(personen_id), personen_id from
> orders group by personen_id) as ordertemp on personen.personen_id =
> ordertemp.personen_id

Acutally, this query needs some reforming on its own.  While it will work, thefollowing version will achieve the same
result,much faster, in 7.1 (and 7.2,for that matter):
 

SELECT personen.field1, personen.field2, personen.field3, count(order_id) asno_orders
FROM personen LEFT OUTER JOIN orders ON personen.personen_id =orders.personen_id
GROUP BY  personen.field1, personen.field2, personen.field3

... you see, your subselect above is completely unnecessary.  And slower than aLEFT OUTER JOIN.  Simplicity,
simplicity,simplicity!
 

Now, we have the problem of no LEFT JOIN support in 7.0, so:

SELECT personen.field1, personen.field2, personen.field3, count(order_id) asno_orders
FROM personen JOIN orders ON personen.personen_id = orders.personen_id
GROUP BY  personen.field1, personen.field2, personen.field3
UNION
SELECT personen.field1, personen.field2, personen.field3, 0 as no_orders
FROM personen
WHERE NOT EXISTS (SELECT personen_id FROM orders WHERE personen_id =personen.personen_id);

Share & Enjoy!  

-Josh Berkus

______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco
 


В списке pgsql-sql по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: psql bug: copy paste statements looses tab character
Следующее
От: "Glenn MacGregor"
Дата:
Сообщение: Complex view question