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 :

Problème de sélection


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 9
    Par défaut Problème de sélection
    Dans la table tl_notes_pat, j'ai :
    LNP_NOTID LNP_PATID
    1 407
    2 412

    3 138
    4 194
    5 124
    6 407
    6 412

    7 313

    Si je lance cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT avg( NOT_AvisID ) AS MOY, count( NOT_AvisID ) AS COUNT1, PRA_Nom
    FROM notes
    JOIN tl_notes_prat ON LNP_AVISID = NOT_ID
    JOIN tl_notes_pat ON LNP_NOTID = NOT_ID
    JOIN pratiques ON PRA_ID = LNP_PRATID
    WHERE LNP_PATID = '407'
    AND LNP_PATID = '412'
    GROUP BY PRA_Nom
    ORDER BY MOY DESC , COUNT1 DESC
    J'obtiens aucuns enrigstrements.

    Si je lance cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT avg( NOT_AvisID ) AS MOY, count( NOT_AvisID ) AS COUNT1, PRA_Nom
    FROM notes
    JOIN tl_notes_prat ON LNP_AVISID = NOT_ID
    JOIN tl_notes_pat ON LNP_NOTID = NOT_ID
    JOIN pratiques ON PRA_ID = LNP_PRATID
    WHERE LNP_PATID IN ('407', '412')
    GROUP BY PRA_Nom
    ORDER BY MOY DESC , COUNT1 DESC
    J'obtiens :
    4.0000 1 Acupuncture
    3.6667 3 Naturopathie

    Hors, moi j'aimerais que la requête me prenne que les enregistrements en vert et pas ceux en rouge.
    Comment faire, merci !?

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il manque des informations pour répondre. Quel est le critère pour sélectionner les lignes en vert plutôt que les rouges ?

    Par ailleurs, il est normal que ta première requête ne retourne rien car LNP_PATID ne peut pas à la fois (sur la même ligne de la table) être à la fois égal à 407 et à 412.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 9
    Par défaut
    Et bien le critère de sélection des lignes est qu'elles doivent être à la fois LNP_PATID = 407 et LNP_PATID = 412 (les 2 en même temps).
    C'est une table liaison (cardinalité n,n)

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Euh... les rouges aussi répondent à ce critère !
    Quel est la raison pour lesquelles les rouges ne doivent pas être gardées ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 9
    Par défaut
    Ok, je comprends ce que tu demande.
    En fait c'est parce qu'ils n'ont pas un LNP_NOTID unique.
    Les deux autres ont le même LNP_NOTID et font donc partie d'une seul et même liaison sur la table des Notes (table de liaison avec n.n il peut donc y avoir un ou plusieurs records concernés par la liaison).
    Un fois dans la colonne LNP_NOTID t'as 1 ET 2 et dans l'autre cas t'as 6 ET 6.
    C'est en fait que les 2 pathologies formes une seul et même note.
    Si une personne à mal au ventre et des aigreurs d'estomac, ce n'est pas la même chose que si une personne à mal et ventre et une autre des aigreurs d'estomac.

  6. #6
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Ah ! le PMSI, toute ma jeunesse.
    La table notes est mise en double jointure avec la table tl_notes_prat et la table tl_notes_pat. Doit-on en déduire que la quatrième table, pratiques, est jointure avec la table tl_notes_prat ?
    Une grande partie de l'ambigüité, pour nous autres intervenants extérieurs au domaine, provient du préfixage identique des noms de colonnes des 2 tables tl_notes_prat et tl_notes_pat avec LNP_.
    Donc un affichage du résutat d'un SHOW CREATE TABLE sur les quatre tables ne serait pas superfétatoire.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

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

Discussions similaires

  1. Un problème de sélection
    Par cocaetjusdorange dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 10/04/2006, 18h02
  2. [XPath] Problème de sélection de noeuds
    Par Heriquet dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/02/2006, 11h22
  3. [VBA] Problème de sélection de feuille
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/12/2005, 11h44
  4. Problème de sélection sous IE
    Par titisite dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/12/2004, 15h05
  5. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 17h56

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