E' il secondo giorno che perdo dietro a sta roba.
Ho la tabella modulo_domande da dove estraggo le domande, ok.
ora, la metto in inner join,
domande_risposte (che sono tutte le risposte possibili), così dovrei avere
tutte le domande con tutte le risposte possibili, giusto?
oltre a questo lo metto in Right join tra modulo_domande e risposte_date in
modo da avere tutte le risposte date ad una domanda, giusto? ma nn funzia.
per di più devo anche contare quante risposte sono state date.
ho fatto 2 query, il probelema è unire i risultati.
SELECT md.id_domanda, COUNT(qr.id_risposta), rt.id_risposta
FROM qo_questionario_modulo qm
INNER JOIN qo_modulo_domanda md
ON qm.id_modulo = md.id_modulo
INNER JOIN qo_questionario_risposta qr
ON md.id_domanda = qr.id_domanda
INNER JOIN qo_risposta_testo rt
ON qr.id_risposta = rt.id_risposta
WHERE
qm.id_questionario = 1 AND rt.id_lingua = 1
GROUP BY md.id_domanda, rt.id_risposta ;
id_domanda id_risposta count
---------- ----------- -----
1 2 1
1 0 1
1 1 2
2 7 1
3 19 1
3 0 2
2 8 1
SELECT
md.id_domanda, dr.id_risposta
FROM qo_questionario_modulo qm
INNER JOIN qo_modulo_domanda md
ON qm.id_modulo = md.id_modulo
INNER JOIN qo_domanda_risposta dr
ON md.id_domanda = dr.id_domanda
INNER JOIN qo_risposta_testo rt
ON dr.id_risposta = rt.id_risposta
WHERE qm.id_questionario = 1 and rt.id_lingua = 1;
id_domanda id_risposta
---------- -----------
1 1
1 2
1 3
1 4
1 5
2 6
2 7
2 8
2 9
2 10
io come output vorrei:
id_domanda id_risposta count
---------- ----------- ---------
1 0 1
1 1 2
1 2 1
1 3
1 4
1 5
2 6
2 7 1
2 8 1
2 9
2 10
in neretto le righe che dovrebbero unirsi, la domanda con id 3 NON
dev'essere presetne (credo di farcela mettendo una condizione sulla prima
query, non è quello il grosso del problema).
il massimo sarebbe avere 0 dove il count non è presente.
qualcuno è capace di darmi un aiuto?