2008/10/16 Wagner Bonfiglio <[EMAIL PROTECTED]>

> Olá William,
>
> o que eu quero é o seguinte...
> Eu tenho várias trivias e várias pessoas... Todas as trivias tiveram pelo
> menos 1 voto eu quis dizer, mas o que eu quero é que a VIEW me retorne uma
> trivia que determinado usuário não votou...
> No caso, caso eu consulte a VIEW sem um "WHERE idclien = XXXX" vai dar
> errado, talvez retornando muitos resultados, mas a minha real intenção é
> realmente buscar uma trívia que o usuário não tenha votado de modo
> randomico...
>

    Aha... entendi.

    Uma primeira opção seria :

*SELECT* t.rowid, t.created, t.updated, t.idcriador, t.pergunta, t.resp1,
t.resp2, t.resp3, t.resp4, t.respcerta, t.linkfoto, t.idfilmescorr,
t.atorescorr, t.status, u.rowid as idclien
*FROM* rfc.trivias t, rfc.usuarios u
*WHERE *(t.rowid,u.rowid) *NOT IN* (
*SELECT* idtrivia, idclien *FROM * rfc.triviavotos)




> Consegui ser mais claro agora? Caso tenha alguma dúvida em aberto pode
> falar...
>
> Valeu,
>      Wagner Bonfiglio
>
> 2008/10/16 William Leite Araújo <[EMAIL PROTECTED]>
>
> 2008/10/15 Wagner Bonfiglio <[EMAIL PROTECTED]>
>>
>>> (...)Acho que todas as trivias tiveram pelo menos um voto, então não tem
>>> nenhuma trivia que satisfaça "tv.idtrivia IS NULL"...
>>>
>>
>>    Bom dia Wagner.
>>
>>     Sua VIEW não contém dados... Você diz que quer "triviasnaovotadas" mas
>> diz que TODAS tiveram votos!?
>>     Tem certeza que é isso que quer? Acho que ainda não conseguiu
>> descrever o que deseja...
>>
>>
>>> O que eu precisava era filtrar apenas as trivias que um determinado
>>> usuário não votou..
>>> Acabei de fazer uma pequena mudança na consulta e ela funcionou:
>>> SAIU>
>>>   FROM rfc.trivias t LEFT OUTER JOIN rfc.triviavotos tv
>>> ENTROU>
>>>   FROM rfc.trivias t LEFT OUTER JOIN (select * from rfc.triviavotos where
>>> idclien = 8382) tv
>>>
>>> Assim aconteceu o que eu falei, entraram apenas os votos que o usuário
>>> 8382 deu.. Mas eu acho que não consigo colocar isso dentro de uma VIEW...
>>>
>>> Apenas para lembrar, eu preciso fazer uma consulta do estilo
>>> SELECT * FROM rfc.v_triviasnaovotadas WHERE idclien = 8382 LIMIT 1;
>>> E de preferência com ORDER BY random() dentro da VIEW também...
>>>
>>
>>     Use a consulta que o Oswaldo sugeriu sem o "WHERE"...
>>
>>     Recomendo não colocar ORDER BY dentro da VIEW. Ponha na sua consulta,
>> pois em algum momento alguém pode querer ordenar de outra forma os mesmos
>> dados, e estará gastando mais tempo que o necessário.
>>
>>
>>>
>>> Alguma idéia?
>>> Valeu,
>>>     Wagner Bonfiglio
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>>
>> --
>> William Leite Araújo
>> Analista de Banco de Dados - QualiConsult
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
William Leite Araújo
Analista de Banco de Dados - QualiConsult
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a