Re: limit left join rows to 1

Поиск
Список
Период
Сортировка
От Jure Ložar
Тема Re: limit left join rows to 1
Дата
Msg-id 4548D034.1020209@madalbal.si
обсуждение исходный текст
Ответ на Re: limit left join rows to 1  (Andreas Kretschmer <akretschmer@spamfence.net>)
Список pgsql-general
Andreas Kretschmer wrote:

>Jure Ložar <jure.lozar@madalbal.si> schrieb:
>
>
>
>>Hi.
>>
>>Is it possible to limit number of left join rows that match condition to 1?
>>I don't want to have hits from first table multiplied when more then 1 row
>>matches on left join condition.
>>
>>
>
>I'm not sure if i understand you correctly, but perhaps this is what you
>are searching for:
>
>Suppose, you have 2 tables, master and detail:
>
>test=# select * from master;
> id
>----
>  1
>  2
>(2 rows)
>
>test=# select * from detail;
> id | val
>----+-----
>  1 | 200
>  2 | 200
>  1 | 100
>(3 rows)
>
>
>This is the left join:
>
>test=# select m.id, d.val from master m left join detail d on m.id=d.id;
> id | val
>----+-----
>  1 | 100
>  1 | 200
>  2 | 200
>(3 rows)
>
>
>But you need only one row from detail, which? Suppose, this one with the
>max(val) value:
>
>test=# select m.id, d.val from master m left join (select id, max(val)
>as val from detail group by id) d on m.id=d.id;
> id | val
>----+-----
>  1 | 200
>  2 | 200
>(2 rows)
>
>
>Is this okay for you?
>
>
>Andreas
>
>
Yes. It's good. Not exactly what I ment but it works.

Thank you.

Jure

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

Предыдущее
От: tomas@tuxteam.de
Дата:
Сообщение: Re: [HACKERS] Index greater than 8k
Следующее
От: "Trewern, Ben"
Дата:
Сообщение: news.postgresql.org down