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

Requêtes MySQL Discussion :

Variables et requête imbriqué pour du dénombrement


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut Variables et requête imbriqué pour du dénombrement
    Bonjour,

    J'ai un BDD avec des études et des pharmacies. Je peux attribuer une étude à une pharmacie dans la table de relation ph_pharmacieEtude qui comporte les champs idPharmacie et idEtude (ainsi que le champs id autoincrémenté).

    Je recherche toutes les pharmacies qui sont sur 4 études. J'ai créé pour cela la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT P.email AS email,P.id AS idPharm
    			FROM ph_pharmacie P 
    			WHERE 
    (SELECT * FROM (SELECT count(R.id) AS nb FROM ph_pharmacieEtude R WHERE R.idPharmacie=idPharm) B WHERE B.nb=4)
    Mais j'ai l'erreur Unknown column 'idPharm' in 'where clause' . MySQL n'arrive pas à lire la variable idPharm dans la requête imbriquée. J'ai essayé de remplacer par P.id mais c'est pareil.

    Pourriez vous m'aider ?

  2. #2
    Membre confirmé
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Points : 597
    Points
    597
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    O_o

    C'est quoi cette clause WHERE???

    Pourriez-vous nous expliquer pourquoi vous avez rajouté un champ auto incrémenté sur une clé primaire composite constitué de deux colonnes?

    J'ai du mal à en percevoir la pertinence et du coup à vous formuler une requête cohérente.

    ++

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Toutes les pharmacies qui sont sur 4 études
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id from ph_pharmacieEtude  group by id having count(id)=4
    Pour avoir l'email etc, il faut ajouter une jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT email FROM ph_pharmacie
    JOIN (select id from ph_pharmacieEtude  group by id having count(id)=4) tmp
    ON ph_pharmacie.id = tmp.id

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

Discussions similaires

  1. Variables et requêtes imbriquée
    Par Ceubex dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/07/2012, 14h23
  2. [MySQL] Requête SQL pour récupérer variable tableau
    Par Baka59 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/10/2008, 19h06
  3. Requêtes imbriquées pour la recherche de différences
    Par kirian dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/02/2007, 11h55
  4. Réponses: 3
    Dernier message: 25/01/2007, 14h12
  5. Récupération de variables de menus déroulants pour requète SQL
    Par Thibaut_Dupont dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 14h24

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