Ajuda: consulta mysql - recursividade

MySQL

Banco de Dados

19/04/2018

Olá, sou novato em mysql, to com dificuldade para fazer uma consulta que retorne um questionario com N questões conforme seu TIPO e devidas quantidades, vou tentar explicar o problema:
São 5 Tabelas:
Series: Guardam 12 series do ensino fundamental ao ensino médio
Tipo: Classificam as questões em niveis de dificuldade de 1 a 20, e um tempo medio que a questao deve ser respondida
Questões: Uma matriz de questões distribuídas para cada ano e tipo
Exemplo:
Questão 1 + 1 = 1, TIPO:1 ANO: 1…Tipo N Ano N.

Agora vem as tabelas auxiliares
Disciplina: Guarda as disciplinas como matematica, portugues, …
Perfil: (Essa tabela é o parametro para gerar os questionarios)guarda o total de questoes conforme a disciplina, considera-se que para um numero sequencial de questões normais, havera ou não uma correspondencia de uma questão extra, há uma tolerancia de erros, para cada disciplina, exemplo matematica pode errar uma de cada tipo, porem essas ligações pensei de fazer via programação.


Exemplo: Matematica = Pode errar 1 vez, se o aluno responder uma questão do tipo 3 errada, sera substituida por outra do mesmo tipo. no segundo erro, termina a prova e encerra a resposta do questionario.

Sobre o Questionario:
Dado de parametros a Disciplina, tenho o perfil de questões para o questionário( DISCIPLINA, ANO e TIPO e suas respectivas quantidades de questões normais e questões extra), a SQL então deve retornar as questões que atendam as exigencias de QUANTIDADE (NORMAL E EXTRA) CONFORME Os TIPOS cadastrados em PERFIL.


Tentei a seguinte consulta:
SELECT 
    COALESCE(CatParent.id, Questoes.id) id, 
    COALESCE(CatParent.enunciado, Questoes.enunciado) enunciado,
    perfil.tipo_id
  FROM perfil
  JOIN Questoes ON perfil.tipo_id = Questoes.tipo_id and
       Questoes.ano_id = perfil.ano_id
  LEFT JOIN Questoes AS CatParent ON Questoes.tipo_id = CatParent.id
ORDER BY RAND( )

group by id, enunciado, tipo_id



Todavia não consegui o resultado, não sei o que há de errado, ele não limita a quantidade de questões conforme definido na tabela perfil, tanto de questões normais quanto extras, sera que tem alguma outra forma?
Roni Cunha

Roni Cunha

Curtidas 0
POSTAR