[Db] query quiz
Marcello Vezzelli
marcello a vezz.it
Lun 19 Mar 2007 13:20:24 CET
Ciao a tutti,
ho tre tabelle (e un po' di limiti in sql!)
- domande (id, testo)
- risposte (id, testo)
- utilizzo (id, rif_utente, rif_domanda, rif_risposta,dataora)
In domande ho un elenco di domande... in risposte ho un elenco di
risposte relative a una certa domanda.
In utilizzo ho le risposte che ha dato l'utente.
Un utente può rispondere più volte alla stessa domanda.
Con questa query conto le domande a cui l'utente ha risposto almeno una
volta, e verifico quindi se ha risposto a TUTTE le domande almeno una volta:
select count(q.id) from ((select distinct rif_domanda as id from
utilizzo where rif_utente=123) as q)
Come faccio a ottenere le PRIME RISPOSTE a TUTTE le domande per un certo
utente?
Mi spiego meglio con un esempio:
domande:
1,'domanda 1'
2,'domanda 2'
...
risposte:
1,'risposta 1 domanda 1'
2,'risposta 2 domanda 1'
3,'risposta 3 domanda 1'
4,'risposta 1 domanda 2'
5,'risposta 2 domanda 2'
...
utilizzo:
1,1,1,2,2007-03-19 10:00:00 // l'utente 1 ha risposto 2 alla domanda 1
1,1,1,3,2007-03-19 10:01:00 // l'utente 1 ha risposto 3 alla domanda 1
1,1,2,4,2007-03-19 10:05:00 // l'utente 1 ha risposto 4 alla domanda 2
1,1,2,5,2007-03-19 10:06:00 // l'utente 1 ha risposto 5 alla domanda 2
...
Voglio ottenere:
1,1,1,2,2007-03-19 10:00:00 // l'utente 1 ha risposto 2 alla domanda 1
1,1,2,4,2007-03-19 10:05:00 // l'utente 1 ha risposto 4 alla domanda 2
Suggerimenti?
Ciao
Marcello
Maggiori informazioni sulla lista
Db