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

PostgreSQL Discussion :

aide pour requete sql


Sujet :

PostgreSQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut aide pour requete sql
    Bonjour,

    Je sollicite votre aide pour une requete sql ou plpgsl qui me pose problème.

    Voilà j'ai une table "photo" avec les champs suivants :

    id_photo, id_membre, rang_photo, photo_valide

    Chaque membre peut avoir 5 photos maxi. Ces photos doivent être validées avant d'apparaitre sur le site.

    Dans mon module d'administration des photos je valide les photos dont le champ photo_valide = 'NO'.

    jusque là c'est très simple comme requête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_photo, id_membre WHERE photo_valide = 'NO'
    Avec cette requête toutes les photos non validées d'un membre risquent d'apparaitre en même temps sur la même page et c'est ce que je ne veux pas.

    je veux valider pour chaque membre une photo à la fois .

    exemple

    membre 1 : 3 photos
    membre 2 : 2 photos
    membre 3 : 1 photos

    je veux que la première requête affiche :

    1 photo de chaque membre


    J'espère être clair...

    Cordialement

  2. #2
    Membre averti
    Inscrit en
    Février 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 14
    Par défaut
    Bonjour,

    Je ne suis pas super pro mais je pense que tu devrais regarder comment fonctionnent les "cursors", puis ensuite voir des fonctions comme FETCH. ( http://www.postgresql.org/docs/8.2/i...l-cursors.html )

    Al

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Oui mais je pense pas que la solution soit là elle se trouve à mon avis dans l'écriture de la requête sql...

    merci

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Par défaut
    bonjour,
    pour ton exemple
    exemple

    membre 1 : 3 photos
    membre 2 : 2 photos
    membre 3 : 1 photos
    Approximativement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  id_membre,count(id_photo) WHERE photo_valide = 'NO' group by id_membre;
    Enfin si j'ai bien compris.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    merci mais ça ne fonctionne pas...

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    J'ai un début de solution :

    select id_photo, id_membre
    from table
    where photo_valide = 'no'
    and rang_photo = (select min(rang_photo) from test where photo_valide = 'no');

    ça va te donner toutes les photo dont le rang est le plus petit ET dont la photo n'est pas valide. Donc, si tu as une seule photo de rang 1 qui n'est pas valide, cette requete ne te retournera qu'une seule ligne... Une fois que cette photo est passée valide, cette requete te retournera les photo non valide de rang 2+ ...

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Par défaut
    Citation Envoyé par AlexC3301 Voir le message
    J'ai un début de solution :

    select id_photo, id_membre
    from table
    where photo_valide = 'no'
    and rang_photo = (select min(rang_photo) from test where photo_valide = 'no');

    ça va te donner toutes les photo dont le rang est le plus petit ET dont la photo n'est pas valide. Donc, si tu as une seule photo de rang 1 qui n'est pas valide, cette requete ne te retournera qu'une seule ligne... Une fois que cette photo est passée valide, cette requete te retournera les photo non valide de rang 2+ ...
    Pourquoi se compliquer la vie, autant utiliser le mot clé LIMIT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select id_photo, id_membre 
    from table
    where photo_valide = 'no' LIMIT 1
    Ce code va te renvoyer une seule photo à la fois. Donc quand elle seront toutes validées la requête ne renverra aucun resultat.

    Un peu d'aide sur la FAQ
    http://postgresql.developpez.com/faq...t#nfirstlignes

    Sinon viny pour la solution que je t'ai proposée, qu'est ce qui ne marche pas? Donne nous plus de détails.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Oui mais le but n'est pas de valider une photo à la fois ! voir problématique plus haut !

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Par défaut
    Je t'ai aussi demandé ce qui ne fonctionne pas dans la requête que je t'ai donnée. Voir mon message précédent!

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    la seule solution qui fonctionne pour le moment est celle de AlexC3301

    quant à la tienne elle me renvoie tjs plusieurs photos du même membre.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Par défaut
    Ca m'étonne.
    Tu peux me faire un copier coller exact des requêtes que tu utilise ainsi que les résultats ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    non ça c pas possible...

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    merci AlexC3301 !

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

Discussions similaires

  1. aide pour requete sql
    Par samplaid dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/07/2007, 12h18
  2. Besoin aide pour Requete SQL
    Par mystik11 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/07/2006, 11h34
  3. [OGS ?] Demande d'aide pour requete SQL
    Par hamtary dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/03/2006, 12h58
  4. Aide Pour Requete SQL Simple ... Merci d'avance :)
    Par thefutureisnow dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/12/2005, 11h39

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