Bonjour,

je sollicite votre aide car je bloque sur une requete SQL .. :'(

Il y a 4 tables concerner :
- questionnaire,
- questions,
- reponses
- une association entre questionnaire et questions.

Quelque règle de gestions pour vous éclairer :

Un questionnaires comporte plusieurs questions mais une question peut appartenr à plusieurs questionnaire, (d'ou l'association)

et une réponse est lié à une question et un questionnaire.


Mon soucis, c'est que je voudrai charger par exemple les questions d'un questionnaires qui n'ont pas encore eut de réponse. Le problème c'est que par defaut aucun n'a deja eu de réponse, les questionnaire sont stocker dans la bdd et peuvent être utiliser plus tard, par exemple si aujourd hui j'ai rempli la moitié d'un questionnaire, demain lorsque je vais le recharger, je devrai avoir l'autre moitié du questionnaire.

questquestionnaire c'est l'association, elle possède 3 champs ( N°, refquestion,refquestionnaire)
Les autres champs sont explicite, mais si jamais vous manquez d'explication, n'hesitez pas^^)

Alors j'ai tester ça comme requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
final String query ="select question_id, question_libelle,question_niveau 
from questions,questquestionnaire,reponses 
where question_id= refquestion 
  AND refquestionnaire=reponse_questionnaireCli 
  AND question_cycle=" + chapter.getId() + " 
  AND refquestionnaire ="+quest.getId()+" 
  AND question_id NOT IN(
    Select reponse_question_id 
    from reponses 
    where reponse_questionnaireCli ="+quest.getId()+" 
      AND reponse_commentaire IS NULL
  ) 
order by question_id asc";
mais ça ne marche pas.

Le problème je pense, vient du fait qu'une instance de questquestionnaire, à savoir une question d'un questionnaire, n'est pas forcement lié à une réponse..