Re: execute same query only one time?

Поиск
Список
Период
Сортировка
От Johannes
Тема Re: execute same query only one time?
Дата
Msg-id 56B8F8CC.8010102@posteo.de
обсуждение исходный текст
Ответ на Re: execute same query only one time?  (Vitaly Burovoy <vitaly.burovoy@gmail.com>)
Ответы Re: execute same query only one time?  (Vitaly Burovoy <vitaly.burovoy@gmail.com>)
Список pgsql-general

Am 08.02.2016 um 20:32 schrieb Vitaly Burovoy:
> On 2/8/16, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
>> On 02/08/2016 11:05 AM, Johannes wrote:
>>> Imaging following situation: I want to receive two result sets from two
>>> tables, referring to a specific id from table t0 AND I try not to query
>>> for that specific id a second time.
>>
>>> Table t0 returns 1 row and table t1 returns multiple rows.
>>>
>>> begin;
>>> select id, col1, col2, ... from t0 where id = (select max(id) from t0
>>> where col1 = value1 and col2 = value2 and ...);
>>> select col1 from t1 where t0_id = (select max(id) from t0 where col1 =
>>> value1 and col2 = value2 and ...);
>>> commit;
>>>
>>> Best regards Johannes
>>
>> Based on rough guess of the above, without seeing actual table schemas:
>>
>> select id, t0.col1, t1.col1, col2, ... from t0 JOIN t1 ON t0.id =
>> t1.t0_id where id = (select max(id) from t0 where col1 = value1 and col2
>> = value2 and ...);
>
> I don't think it is a good solution because it leads to copying
> columns from the t0 which is wasting net traffic and increasing
> complexity at the client side. Moreover it works iff t0 returns only
> one row.

I had same doubts.
CTE would be first class, if it was be reusable for other statements.

Johannes


Вложения

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

Предыдущее
От: Vitaly Burovoy
Дата:
Сообщение: Re: execute same query only one time?
Следующее
От: Johannes
Дата:
Сообщение: Re: execute same query only one time?