2009/5/18 Lucas Souza <[email protected]>:
>
>
> 2009/5/18 Sidnei Vladisauskis <[email protected]>
>>
>> Fala pessoal,
>>
>> Estou com uma dúvida conceitual para fazer um select
>>
>> Vamos lá:
>>
>> tenho uma tabela "produtos" onde tenho
>> id
>> name
>> loja_id
>>
>> e tenho uma tabela loja onde tenho
>> loja_id
>> name
>>
>>
>> Tenho produtos que possuem em duas lojas, por exemplo:
>> tv lcd lg 29"
>>
>> ela está dentro de produtos duas vezes
>>
>> Tabela produtos
>> | id |      name      | loja_id
>> | 1  | tv lcd lg 29" | 1
>> | 2  | tv lcd lg 29" | 2
>
> desta forma você esta replicando dados desnecessariamente,
>
> o correto seria uma 3º entidade para associar o produto a loja assim...
>
> (exemplo) tabela produto_relacao_loja
>
> loja_id (PK, FK)
> produto_id (PK, FK)
> estoque
> preco
>
>
>>
>>
>> Quando faço select * from produtos tenho todos os resultados.
>>
>> Como eu rotorno o seguinte?
>>
>> |      name      | lojas
>> | tv lcd lg 29" | 1,2
>>
>> Tem como?
>>
>> Se eu der group by name ele pede id tb, e ai dá na mesma...
>>


Além do excelente e apropriado conselho do Lucas você pode usar,
especificamente para o select desejado, uma função de agregação.
Veja o exemplo array_accum em:
http://www.postgresql.org/docs/current/interactive/xaggr.html

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a