Jump to content


Photo

Mysql


  • Faça o login para participar
2 replies to this topic

#1 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 30/10/2005, 14:25

É o seguinte, tenho algumas tabelas, mas o que intereça é que em uma eu tenho perguntas (ID | PERGUNTA) em outra eu armazeno quem ja respondeu as perguntas (ID | ID), essa tabela serve para fazer "varios para varios" entre a tabela usuarios e a tabela perguntas.

Ta bom, como faço pra selecionar as perguntas que o usuario ainda nao respondeu? Lembrando que eu armazeno as que ele respondeu.

Ex.:
PerguntaID | Pergunta
1 | Quem inventou o chuveiro?
2 | Qual o seu nome?
3 | Quem e voce?

UsuarioID | Usuario
1 | Goiabinha
2 | Guto

RefPerguntaID | RefUsuarioID
1 | 1
2 | 1
2 | 1
o exemplo citado acima mostra que o usuario 1 respondeu as duas primeiras perguntas,
mas o usuario 2 so respondeu a primeira.

Eu quero que a consulta retorne as perguntas que o usuário 2 NÃO respondeu, por exemplo.

Edição feita por: goiaba2000, 30/10/2005, 14:36.

PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#2 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 30/10/2005, 16:13

consegui, ai vai a aresposta:
SELECT * FROM gf_perguntas
        WHERE PerguntasPergunta
       	 NOT IN (SELECT RefPerguntasMembrosPergunta FROM gf_ref_perguntas_membros
          WHERE RefPerguntasMembrosMembro = '$ID')
        ORDER BY PerguntasID ASC

PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#3 quinhone

quinhone

    12 Horas

  • Usuários
  • 172 posts
  • Sexo:Não informado

Posted 31/10/2005, 16:16

Colega nesse tipo de consulta, onde vc tem 3 tabelas, 2 tabela e uma de relacionamento ( N para N) são complicadas, mas vamos lá:

eu tenho uma consulta igual a essa que me custou algumas semanas de dor de cabeça e muita ajuda de pessoas de forum, nesse tipo de consulta vc tem que usar o GROUP BY, senão não vai funcionar. estude me exemplo e veja se vc consegue resolver:


SELECT b.ati_nome,a.cli_fantasia FROM tbcliente a,tbatividade b, tb_cliente_atividade c
WHERE b.ati_nome LIKE '%Inox%'
AND c.tbatividade_ati_id = b.ati_id
AND a.cli_id=c.tbcliente_cli_id
GROUP BY c.tbcliente_cli_id
ORDER BY a.cli_fantasia

Nesse exemplo eu tenho:

TBCLIENTE - TBATIVIDADE E A TABELA QUE RELACIONA TB_CLIENTE_ATIVIDADE

Espero que te ajude

Att

Luis Carlos




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq