Re: reuse a subquery
От | Thom Brown |
---|---|
Тема | Re: reuse a subquery |
Дата | |
Msg-id | AANLkTimgwNreCVg-Gm+Gj3OEGi80qJM0SjFj8G-ghH5o@mail.gmail.com обсуждение исходный текст |
Ответ на | reuse a subquery (Charles Holleran <scorpdaddy@hotmail.com>) |
Ответы |
Re: reuse a subquery
|
Список | pgsql-novice |
On 9 August 2010 15:04, Charles Holleran <scorpdaddy@hotmail.com> wrote: > I have a query that uses the same subquery twice. What is the correct > syntax to reuse the subquery instead of running it twice? The query below > 'works' but reruns the identical subquery. The point of the subquery is to > limit the join work to the subset of table_a where c = 3 instead of the > entire table_a with c ranging from 0 to 65535. The planner helps expedite > the rerun query, but there must be a better syntax for subquery reuse. > > E.g. > > SELECT * > > FROM > ( > SELECT * > FROM table_a > WHERE c = 3 > ORDER BY d > ) AS T1 > > LEFT JOIN > > ( > SELECT * > FROM table_a > WHERE c = 3 > ORDER BY d > ) AS T2 > > ON T2.d = (T1.d + 5) > WHERE T2.d IS NULL > ORDER BY T1.d; > Can't you just do: SELECT * FROM table_a WHERE d+5 NOT IN (SELECT t1.d FROM table_a AS t1) ORDER BY d; -- Thom Brown Registered Linux user: #516935
В списке pgsql-novice по дате отправления: