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 :

Ce qui est dans une table mais pas dans l'autre !


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Ce qui est dans une table mais pas dans l'autre !
    bonjour,

    j'essaye de résoudre un petit problème, et je pense que mysql peut m'y aider, mais je ne sais comment!

    j'ai une table (que l'on va appeler A) qui contient des informations globlal:
    Table A : 'bidule' contient 'X' du type 'truc' (entre cotes les champs)

    et une table qui contient ces informations dans le détail mais qui est incomplète
    Table B : 'Bidule' du type 'truc' fait 'machin' (entre cotes les champs)

    je souhaite connaitre tout les 'bidule' de type 'truc' qui ne sont pas dans la table B, mais je ne sais pas comment faire!

    Une bonne âme ou plusieurs pourraient me mettre sur la voie ?

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir compris tous les champs de tes 2 tables ('Bidule', 'type', 'truc'...). C'est flou entre le nom des colonnes et le contenu des champs .
    Disons que le schéma de ta base est donc le suivant :
    tableA(bidule, type, X)
    tableB(bidule, type, machin).

    Ce que tu souhaites serait alors quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM tableA a
    LEFT JOIN tableB b ON a.bidule = b.bidule
    WHERE b.bidule IS NULL
    AND a.type = 'truc'
    Si ça ne marche pas, il faudra être plus précis pour qu'on puisse t'aider .

    ced

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Oki, je vais être plus précis. Ta réponse me donne déjà une bonne idée de de que devrait être la solution finale.

    La première table se nomme tbl_mission elle contient le détail de missions et les champs sont : pays, type_mission et d'autres données propre à chacune des missions

    La seconde table se nomme tbl_pays et contient le nombre de missions par type. Les champs sont : pays, type_mission, Nombre_mission.

    La tbl_pays est exhaustive, et je souhaite savoir si la tbl_mission possède autant de mission qu'elle ne devrait et afficher par type_mission les pays ayant des manques.

    voila ça doit être plus précis désormais.

    Merci d'avance de ton aide.
    Youyoule

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    Effectivement, c'est maintenant plus clair .
    Voici donc une requête qui te donnes la liste des pays et des types de missions pour lesquels il n'y a pas cohérence entre les deux tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select p.pays, p.type, p.nombre_mission, count(m.id) as nb_mission
    from tbl_pays p
    left join tbl_mission m on p.pays = m.pays and p.type = m.type
    group by p.pays, p.type, p.nombre_mission
    having nombre_mission <> nb_mission
    Attention, pour que ça marche, il faut compter sur les identifiants de mission que j'ai appelé ici id. Remplace-le par l'identifiant de ta table de missions.

    ced

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Youhou CA MARCHE

    Un super MERCI a toi CED pour ton aide precieuse !

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

Discussions similaires

  1. Objet existant reconnu dans une fonction mais pas dans une autre
    Par Jiyuu dans le forum Général Python
    Réponses: 0
    Dernier message: 20/09/2011, 19h19
  2. Réponses: 5
    Dernier message: 18/03/2009, 20h31
  3. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 16h12
  4. Réponses: 9
    Dernier message: 13/03/2008, 02h34
  5. Réponses: 5
    Dernier message: 02/10/2006, 20h24

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