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 :

[MySQL] requete sur nombre de detail


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut [MySQL] requete sur nombre de detail
    Bonjour,

    Je cherche a savoir s'il est possible de sortir tous les enregistrements d'une table maitre, liée a une table esclave, dont le nombre d'enregistrement detail est egal à un certain nombre.
    Je m'explique, j'ai une relation maitre-detail, chaque enregistrement maitre peut avoir de 0 à une trentaine d'enregistrement detail. Je cherche, sans trouver pour l'instant, le moyen d'extraire tous les enregistrements de ma table maitre qui ont plus de 10 enregistrements detail.

    Merci de votre aide

    Bidochon
    Tant de mains pour transformer ce monde, et si peu de regards pour le contempler !
    (Julien Gracq)

  2. #2
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut
    Avec un COUNT, GROUP BY et HAVING , ca doit passer.

    Pour une réponse plus précise, merci de donner des info plus précises comme les tables que tu utilise par ex
    Two beer or not two beer. (Shakesbeer)
    Question technique par MP => poubelle!

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT a, b, c, T1.d
    FROM T1 INNER JOIN T2 USING (a,b,c)
    GROUP BY a, b, c, T1.d
    HAVING COUNT(*)> 10
    PS : Ah, Le rivage des Syrtes, quel livre....
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut
    Merci pour vos reponse je reviens de WE je vais essayer.
    J'ai oublié de dire que la base est du MySQL

    Merci
    Tant de mains pour transformer ce monde, et si peu de regards pour le contempler !
    (Julien Gracq)

  5. #5
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut
    Tout fonctionne a merveille sauf un petit probleme :
    lorsque je souhaite obtenir tous les enregistrements n'ayant pas de detail, je place 0 dans la clause Having Count mais là, le resultat est NULL alors qu'il existe des enregistrements remplissant cette condition.

    voici mon exemple :
    Table1 : table maitre
    Table2 : table detail
    RefClient : champ commun aux 2 tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Table1.RefClient
    FROM Table1 INNER JOIN Table2 USING (RefClient)
    GROUP BY RefClient
    HAVING COUNT(Table2.RefClient) =0
    Merci
    Tant de mains pour transformer ce monde, et si peu de regards pour le contempler !
    (Julien Gracq)

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Remplace INNER JOIN par LEFT OUTER JOIN.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Membre habitué Avatar de bidochon
    Inscrit en
    Juin 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 168
    Points : 156
    Points
    156
    Par défaut
    Merci Mediat,
    Cela fonctionne super bien. Je constate que le Left outer join est plus long en temps d'execution.

    Merci

    PS : je n'avais pas vu ton Post scriptum plus haut, je constate que tu connais l'auteur la citation qui me sert de signature. Savais-tu que pour "le rivage des Syrtes", il avait refusé de prix Goncourt.
    Tant de mains pour transformer ce monde, et si peu de regards pour le contempler !
    (Julien Gracq)

  8. #8
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Oui je savais (normal et cohérent, après avoir écrit "La Littérature à l'estomac"), Gracq est un de mes auteurs favoris (je suis arrivé à Gracq grâce à André Breton), j'ai eu l'insigne joie de connaître José Corti (dont la librairie existe toujours à Paris, près du Luxembourg), son éditeur, et nous en avons parlé souvent.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

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

Discussions similaires

  1. [MySQL] requete sur 2 tables sql
    Par diice dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/01/2007, 16h08
  2. [MySQL] requetes sur deux bases différentes
    Par hutchuck dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/02/2006, 17h19
  3. Experts Mysql : Optimiser une requete sur codes postaux
    Par El Riiico dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/01/2006, 18h00
  4. [MySQL] aide sur une requete
    Par dj-julio dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/01/2006, 14h25
  5. requete sur 2 tables mysql
    Par PAYASS59 dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/09/2005, 11h48

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