Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Quati Maldito

[Resolvido] Selecionar somente as perguntas sem respostas

Recommended Posts

Olá!

 

Pessoal, postei o mesmo tópico na categoria ASP, como ninguém respondeu, depois olhando melhor achei que poderia estar nesta categoria também, enfim segue a dúvida:

 

Levando em conta a estrutura:

 

TAB PERGUNTAS

id

pergunta

 

 

TAB RESPOSTAS

id

codigo_pergunta

resposta

 

qr = "SELECT * FROM Respostas RIGHT JOIN Perguntas ON Respostas.codigo_pergunta = Perguntas.id"

 

Isso me retorna os registros da tabela a direita(Perguntas) independentemente da tabela da esquerda(Respostas) ter registros ou naum.

 

Ou seja, se eu tiver 5 perguntas, e apenas 3 tiverem respostas, ele vai trazer as 5 perguntas mesmo assim.

 

A pergunta é: COMO FAÇO PARA RETORNAR SOMENTE OS REGISTROS DA TABELA PERGUNTAS QUE NÃO TENHA REGISTRO NA TAB RESPOSTAS. Ou seja, somente as perguntas sem respostas.

 

o banco é mysql.

 

Num sei mais o q fazer galera..

 

Obrigado a todos.

 

Att.

 

Aguinaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Agnaldo

 

Não sei se entendi bem, mas dependendo da versão do teu MySQL tu pode usar uma subquery

algo do tipo

 

SELECT id, pergunta FROM Perguntas as p WHERE p.id NOT IN(SELECT codigo_pergunta FROM Respostas)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou (se suportar tb)

 

SELECT id, pergunta 
FROM Perguntas as p 
WHERE p.id NOT EXISTS (SELECT codigo_pergunta FROM Respostas as r WHERE p.id = r.id) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos, isso aqui resolveu:

 

"SELECT * FROM perguntas p WHERE NOT EXISTS(SELECT 1 FROM respostas r WHERE r.codigo_pergunta = p.id)"

 

Num deu tempo de testar as alternativas postadas aqui, mas agradeço muito e certamente será de grande utilidade para outros zés como eu..hehehe

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.