Em 15/10/08, Wagner Bonfiglio<[EMAIL PROTECTED]> escreveu:
> Boa tarde moçada...
> Seguinte, tenho uma consulta aqui que parece ser tranquila mas está me dando
> dor de cabeça...
>
> Eu tenho um sistema de QUIZ no meu site, em que tenho várias perguntas e
> tenho vários usuários respondendo as mesmas.
>
> As tabelas que precisam ser citadas:
>
> usuarios
> tem o campo "rowid" como chave primária
>
> trivias
> tem todas as informações da pergunta, respostas, etc, e também tem o "rowid"
> como chave primária
>
> triviavotos
> armazena as respostas que os clientes deram... tem o idtrivia
> (trivias.rowid), idclien (usuarios.rowid), status (certo 1 - errado 0),
> respdada (1,2,3,4)
>
>
> A questão é quando eu quero pegar uma nova pergunta para um determinado
> usuário... Eu pedi para o DBA fazer uma VIEW em que eu passe o rowid do
> usuario e ele me retorne uma pergunta que o usuário não tenha votado...
>


Avalie se esta alternativa é mais rápida:

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, tv.idclien
   FROM rfc.trivias t LEFT OUTER JOIN rfc.triviavotos tv
                      ON t.rowid = tv.idtrivia
   WHERE tv.idtrivia IS NULL;

Se desejar em ordem aleatória acrescente um: ORDER BY random()

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a