Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème sql

maximum

    28 juillet 2010 à 13:51:38

    Bonjour à tous,
    Voilà je galère un peu sur une requete alors si quelqu'un pouvait m'aider ça serait vraiment sympa.
    Je vous explique mon problème, j'ai une table sql qui contient des identifiants d'image, ainsi que des identifiants de questions.
    Je souhaiterais sélectionner pour chaque image(id_image),et pour chaque question(id_question),la réponse la plus fréquemment donnée et sa suivante.
    Par exemple si dans ma table j'ai :
    id_image id_question id_reponse nb_reponses(trouvé avec une requete sql utilisant un count)
    1 3 5 10
    1 3 6 9
    1 3 4 8

    Pour l'image 1,à la question 3,on a répondu 10 fois la réponse 5,9 fois la réponse 6 et 8 fois la réponse 4.
    je souhaiterais pouvoir récupérer les 2 premières lignes (les réponses que l'on a répondu 10 et 9 fois)

    Si quelqu'un a une idée,car là moi je ne vois pas du tout.
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      28 juillet 2010 à 14:51:48

      Si tu utilises MySQL essaye d'ajouter LIMIT 0,2 à la fin de ta requête.

      La clause LIMIT n'est pas propre au langage SQL ? Je viens d'apprendre qu'on faisait avec ROWNUM sous Oracle ...
      N'y a-t-il pas une fonction similaire mais "universelle" ?
      • Partager sur Facebook
      • Partager sur Twitter
        28 juillet 2010 à 15:01:20

        Lord Casque Noir,j'utilise mysql avec wampserver(version 5.1 de mysql),j'exécute mes requetes soit directement avec phpmyadmin si c'est des requetes simples soit sous la forme de fonctions en php.

        VirtualBlueRat,en mettant limit 0,2 je n'obtiens pas du tout les deux résultats les plus élevés :-(
        • Partager sur Facebook
        • Partager sur Twitter
          28 juillet 2010 à 16:05:07

          OK.
          Pour une seule image, tu peux utiliser ORDER BY et LIMIT.
          Si tu veux les 2 premiers résultats pour chaque image en une requête, il va falloir ruser avec GROUP_CONCAT.
          • Partager sur Facebook
          • Partager sur Twitter
            28 juillet 2010 à 16:11:17

            qu'est ce que group_concat permet de faire concrètement stp?je cherche sur le net mais les explications sont pas super claires
            • Partager sur Facebook
            • Partager sur Twitter
              28 juillet 2010 à 16:33:58

              Ca te rassemble toutes les valeurs d'une colonne en une seule chaîne.
              Voici un exemple bien expliqué que j'ai trouvé : http://www.mysqlperformanceblog.com/20 [...] by-extension/
              • Partager sur Facebook
              • Partager sur Twitter
                28 juillet 2010 à 16:46:55

                Quand j'essaye d'utiliser group concate, j'obtient blob
                • Partager sur Facebook
                • Partager sur Twitter
                  28 juillet 2010 à 16:56:03

                  Peux-tu poster ta requête SQL ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 juillet 2010 à 17:05:24

                    ma requete de base que je souhaiterais modifier est la suivante:
                    select id_image,id_question,reponse,count(reponse)
                    from ma_table
                    group by id_image,id_question,reponse

                    ca me permet d'obtenir ce que j'ai posté au tout début,c'est à dire :

                    id_image id_question reponse count(reponse)
                    5 8 1 10
                    5 8 3 12
                    5 8 2 10
                    5 4 2 8
                    1 2 3 10

                    j'ai essayé de mettre group_concat(id_question) dans ma requete, et c'est là que j'obtiens blob.
                    je crois que je ne vois pas l'utilité de group_concat pour ma requete en fait c'est pour ça.

                    Avec l'ensemble des lignes obtenues avec ma requete,j'aimerais avoir pour chaque id_image et pour chaque question,les deux réponses les plus citées
                    • Partager sur Facebook
                    • Partager sur Twitter

                    problème sql

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown