IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Probleme requete SQL


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut Probleme requete SQL
    Bonjour, je cherche à faire une requete SQL mais je n'arrive pas à obtenir le resultat voulu.

    Dans une table de user appellée 'usr' je cherche à compter le nom d'utilisateur ayant les compte P ou A, le login X et password Y, voila ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    SELECT count( * ) AS nbres_user
    FROM usr
    WHERE LOGIN = 'X' AND PASSW='Y'
    IN (
     
    SELECT count( * ) AS nbres_compte
    FROM usr AS usrA, usr AS usrB, usr AS usrL
    WHERE usrB.COMPTE = 'A'
    OR usrA.COMPTE = 'P'
    )
    Cela me retourne le nombre 4, donc le nombre total d'utilisateur, hors il devrait me retourner 1.

    Quelqu'un pourrait m'aider

  2. #2
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par kanabzh29 Voir le message
    Dans une table de user appellée 'usr' je cherche à compter le nom d'utilisateur ayant les compte P ou A, le login X et password Y
    Si l'énoncé est correct, il y a plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT COUNT(*) AS nbres_user
    FROM usr
    WHERE (LOGIN = 'X' AND PASSW = 'Y') AND (COMPTE = 'A' OR COMPTE = 'B')

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Oui tu as bien compris l'enoncé mais cela ne fonctionne pas, cela me renvoit toujours zero.

  4. #4
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Par rapport à ton énoncé, j'ai fais une petite erreur...
    C'est OR COMPTE = 'P', pas OR COMPTE = 'B'.

    Enfin bref, étonnant que cela ne marche pas.
    Vu que tu n'as que 4 utilisateurs, tu peux nous montrer les données et le shéma de la table ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Je ne voyais qu'est qui aurait été le mieux pour montrer le schema de la table donc voila en requete SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CREATE TABLE `usr` (
      `NOM` varchar(50) NOT NULL,
      `PRENOM` varchar(50) NOT NULL,
      `LOGIN` varchar(50) NOT NULL,
      `PASSW` varchar(100) NOT NULL,
      `MAIL` varchar(50) NOT NULL,
      `DROITS` varchar(1) NOT NULL,
      `ETAT` varchar(1) NOT NULL,
      `COMPTE` varchar(1) NOT NULL,
      PRIMARY KEY  (`LOGIN`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `usr`
    --
     
    INSERT INTO `usr` (`NOM`, `PRENOM`, `LOGIN`, `PASSW`, `MAIL`, `DROITS`, `ETAT`, `COMPTE`) VALUES
    ('leclerc', 'antoine', 'admin', '63a9f0ea7bb98050796b649e85481845', 'admin@root.com', 'S', 'P', 'P'),
    ('Bioret', 'Amelie', 'amelie', '5b4ac833a90cb6fe84ca5672deb5fb0e', 'amelie@com', 'U', 'P', 'B'),
    ('Crochet', 'Capitaine', 'capcro', '87cf962b35146c21d0dd7f84594662b6', 'cap@cro.com', 'U', 'P', 'B'),
    ('Duck', 'Donald', 'disney', '87cf962b35146c21d0dd7f84594662b6', 'donald@duck.com', 'U', 'P', 'B');

  6. #6
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Citation Envoyé par kanabzh29 Voir le message
    Je ne voyais qu'est qui aurait été le mieux pour montrer le schema de la table donc voila en requete SQL :
    Parfait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(*) AS nbres_user
    FROM usr
    WHERE (LOGIN = 'admin' AND PASSW = 'passNonCrypté') AND (COMPTE = 'B' OR COMPTE = 'P')
    devrait te retourner 1 ligne...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 54
    Points
    54
    Par défaut
    La réponse de Keihilin semble correct (en tenant compte de la correction).

    [Edit] j'avais pas vu les données

    Petite précision : attention aux majuscules / minuscules dans ta requête

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 288
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par Keihilin Voir le message
    Parfait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT(*) AS nbres_user
    FROM usr
    WHERE (LOGIN = 'admin' AND PASSW = 'passNonCrypté') AND (COMPTE = 'B' OR COMPTE = 'P')
    devrait te retourner 1 ligne...

    Cela marche très bien, merci beaucoup.

  9. #9
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    de rien. N'oublie pas le tag [Résolu].

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Probleme requete sql et code html
    Par needles94000 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/03/2006, 17h38
  2. [Access] Probleme requete SQL
    Par kissmytoe dans le forum Langage SQL
    Réponses: 11
    Dernier message: 24/02/2006, 15h25
  3. probleme requete SQL
    Par grochenel dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/12/2005, 09h26
  4. [MySQL] probleme requete sql et php
    Par digger dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/10/2005, 14h15
  5. probleme requete sql
    Par Shosho dans le forum Langage SQL
    Réponses: 12
    Dernier message: 03/05/2005, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo