Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
Tenho duas tabelas, uma chamada questionario e outra questionario_usuario. Na tabela questionario eu crio vários questionários para o mesmo curso, e na tabela questionario_usuario eu salvo os questionarios que o usuario já respondeu.
TABELA - questionario
/applications/core/interface/imageproxy/imageproxy.php?img=http://i57.tinypic.com/2qtvmhe.png&key=13e14884b0325eb02b33ee9d015b86e1af4d7a2cfa9523371b72e131339e6351" alt="2qtvmhe.png" />
TABELA - questionario_usuario
/applications/core/interface/imageproxy/imageproxy.php?img=http://i62.tinypic.com/2d8s183.png&key=dbfdef79aeb1fef2330c85d272e4fb75b5f0261edba302f8070e5b6b454b1e55" alt="2d8s183.png" />
Preciso fazer um SQL para selecionar apenas 1 questionario que o usuario não tenha respondido. No exemplo acima o usuario ja respondeu o questionario 1, entao teria que retornar apenas o código 2 - Questionário B.
Alguém poderia me ajudar?
Obrigado
SELECT *
FROM questionario A
LEFFT JOIN questionario_usuario B
ON A.codigo = B.codigo
WHERE B.codigo IS NULL
então ele listara a questão 2 e 3
se vc quer apenas 1 questão utiliza LIMIT 1
se vc quer apenas 1 questão especifica utilize ORDER BY e crie uma coluna de ordem
Galera,
Muito obrigado pela ajuda.
Ficou assim:
SELECT *
FROM questionario A
LEFT JOIN questionario_usuario B ON A.codigo = B.questionario
WHERE B.codigo IS NULL
LIMIT 1
Marque o post que mais lhe ajudou como resolvido! :D
Galera,
Coloquei o SQL em produção e achei um erro.
Acabei de fazer uma alteração, vou colocar em produção e ver se resolveu.
Ficou assim:
SELECT q. *
FROM questionario q
WHERE q.curso = '".$curso."'
AND q.codigo NOT
IN (
SELECT questionario
FROM questionario_usuario qu
WHERE qu.usuario = '".$usuario."'
)
LIMIT 1
Um INNER JOIN traz tudo que exista correspondência em ambas as tabelas, para este caso você teria que fazer um "LEFT JOIN questionario_usuario ON questionario.codigo = questionario_usuario.questionario" e mostrar somente o que não tiver correspondência com a tabela questionario_usuario, por exemplo, "WHERE questionario_usuario.questionario IS NULL".
Entendeu?