J'aurais bien eu une idée mais en regardant de plus pour moi il y a un problème de conception, "nombre réponse" ne devrait pas être une colonne, mais une donnée calculée, via le nombre de lien entre images, questions et réponses
image(
id_image)
questions(
id_question, libelle_question, id_image#)
reponses(
id_reponse, libelle_reponse, id_question#)
reponses_donnees(id_question#, id_reponse#)
Ce qui nous donnerait les requêtes suivantes:
-- liste des questions pour une image
SELECT id_image, id_question, libelle_question
FROM questions
WHERE id_image = ?
-- liste des reponses possibles pour une question
SELECT r.id_reponse, r.libelle_reponse
FROM question q
INNER JOIN reponses r ON q.id_question = r.id_question
WHERE q.id_question = ?
-- la meilleure réponse pour une image (bon à tester)
SELECT id_image, id_question, COUNT(id_reponse)
FROM images i
INNER JOIN questions q ON i.id_image = q.id_image
INNER JOIN reponses_donnees rd ON q.id_question = rd.id_question
GROUP BY id_image, id_question
HAVING MAX(COUNT(id_reponse))
Dans l'optique de faire des stats, de relier à des utilisateurs etc cela serait plus logique, tu pourrais calculer ce que tu veux.
Mais bon ça c'était mon avis perso, pour ton soucis on partirait donc de là j'imagine :
SELECT id_image, id_question, id_reponse
FROM table t
ORDER BY id_image, id_question, id_reponse DESC
Et ensuite comme tu veux les deux premiers, ça devient complexe, on se dit qu'il va falloir bidouiller et utiliser les fonctions de MySQL (d'ailleurs je ne sais même pas si utilise MySQL vu que comme 98% des utilisateurs de ce forum tu ne l'as pas précisé)
Moi je n'ai pas trop envie de me casser la tête donc je me dis que quelqu'un l'a sûrement déjà fait avant moi et je tombe là dessus :
http://www.xaprb.com/blog/2006/12/07/ho ... up-in-sql/
À mon avis, ça pourrait te mettre sur la piste
