Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide sur requete SQL

    24 novembre 2010 à 9:25:43

    Bonjour,

    Je rencontre un petit probléme de requête, elle est assez simple mais c'est plutôt le résultat que je ne comprends pas.
    J'ai une table qui contient un login (varchar(15)) et un numéro programme (tinyint(4)) - celui-ci renvoie vers une autre table qui contient le nom du programme sans qu'une clé étrangère lie les 2 tables. Ces 2 valeurs sont les clés primaires de la table car un login peut avoir plusieurs programmes.
    Ne me poser pas de questions spécifiques sur la conception de la base car ce n'est moi pas qui ai travaillé dessus.

    Si je fais un
    select * from Nomtable
    
    toutes les données sont bien renvoyées.
    Par contre et c'est là mon problème, la requête
    SELECT IdProgram
    FROM table
    WHERE login='toto'
    
    ne renvoie bien le nombre de lignes correspondant au nombre de fois où le login apparaît dans la table, mais le champs IdProgram est toujours à 0.

    Je ne sais pas si j'ai été assez clair, merci de votre aide!!!
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2010 à 9:57:26

      CREATE TABLE IF NOT EXISTS `user` (
        `IdProgram` tinyint(4) NOT NULL,
        `Login` varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
        `Description` varchar(150) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
        `Mail` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
        `Status` enum('active','inactive') CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
        `FullName` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
        PRIMARY KEY (`IdProgram`,`LogDctm`),
        KEY `IdProgram` (`LogDctm`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
      
      Voici le script exporté de MySQL
      
      • Partager sur Facebook
      • Partager sur Twitter
        24 novembre 2010 à 10:09:31

        Je t'ai tout envoyé en MP, merci
        • Partager sur Facebook
        • Partager sur Twitter
          24 novembre 2010 à 10:15:29

          Salut neptunes78 je me pose une question :

          CREATE TABLE IF NOT EXISTS `user` (
            `IdProgram` tinyint(4) NOT NULL,
            `Login` varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `Description` varchar(150) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `Mail` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `Status` enum('active','inactive') CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `FullName` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            PRIMARY KEY (`IdProgram`,`LogDctm`),
            KEY `IdProgram` (`LogDctm`)
          ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
          


          j'ai testé cette table et je trouve un truc bizarre "LogDctm" n'apparait nulle part dans ta table sinon j'ai testé avec différentes valeurs et cela marche voici mon résultat :

          --
          -- Structure de la table `user`
          --
          
          CREATE TABLE IF NOT EXISTS `user` (
            `IdProgram` tinyint(4) NOT NULL,
            `Login` varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `Description` varchar(150) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `Mail` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `Status` enum('active','inactive') CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            `FullName` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
            PRIMARY KEY (`IdProgram`,`Login`),
            KEY `IdProgram` (`Login`)
          ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
          


          la requete :

          SELECT IdProgram
          FROM user
          WHERE login='toto'
          


          • Partager sur Facebook
          • Partager sur Twitter
            24 novembre 2010 à 10:18:04

            Je viens de tester ce que tu m'as envoyé, et moi ça me donne les bonnes idProgram...
            • Partager sur Facebook
            • Partager sur Twitter
              24 novembre 2010 à 10:20:28

              En fait j'avais un peu modifié le script que j'avais posté, c'est pour ça. Sinon tous les noms des champs correspondent bien.

              Merci :p


              Si je tape la requête
              SELECT * FROM `oum_userdctm` WHERE `LogDctm` = 'dbpro00'
              



              ca me renvoie ce résultat :s
              IdProgram LogDctm Description Mail Status FullName
              0 dbpro00 - - active -
              0 dbpro00 - - active -
              0 dbpro00 - - active -
              0 dbpro00 - - active -
              • Partager sur Facebook
              • Partager sur Twitter
                24 novembre 2010 à 10:23:06

                ok pas de souci ^^
                si ca marche à présent met le sujet en résolu ;)
                • Partager sur Facebook
                • Partager sur Twitter

                Aide sur requete 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