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 :

Jointure complete entre champs de deux tables


Sujet :

Requêtes MySQL

  1. #1
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut Jointure complete entre champs de deux tables
    Bonjour,

    je taff sous MySQL 4.

    Soit deux tables A et B, B possedant une clé étrangere vers A
    et j'aimerai savoir s'il existe un moyen de connaitre, en une seule requête, s'il existe pour toutes les lignes A, au moins une ligne en B correspondante.

    Je demande ca pour eviter de recuperer un ensemble de ligne de A, et pour chacune regarder s'il existe qulque chose en B, algo plus gourmand en temps serveur.

    Si quelqu'un a une solution, s'il peut en plus m'indiquer si elle est portable vers d'autres bases de données naturellement, ou si c'est spécifique à MySQL, ce sera sympa

    Merci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Salut !

    Je ne sais pas sûr que ça réponde vraiment à ta question, mais essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT count(*) FROM a LEFT JOIN b ON a.cle_primaire=b.cle_etrangere
    WHERE b.cle_etrangere IS NULL
    résultat=0 : toutes les lignes de A sont dans B.
    Sinon il y en a au moins une qui manque...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 68
    Points : 37
    Points
    37
    Par défaut
    Je pense que j'ai mieux en fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a.*
    FROM a LEFT OUTER JOIN b ON a.cle_primaire = b.cle_etrangere
    WHERE b.cle_etrangere IS NULL
    Là tu récupères les données de A qui ne sont pas dans B.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Yeahh, je teste ca, mais le coup du IS NULL devrait m'apporter satisfaction.

    Je te remercie.

    ++

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

Discussions similaires

  1. Différence entre deux champs de deux tables
    Par minooo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/12/2010, 13h54
  2. Réponses: 3
    Dernier message: 04/03/2010, 10h03
  3. Sum de deux champs sur deux tables différentes
    Par kluh dans le forum Oracle
    Réponses: 11
    Dernier message: 29/09/2005, 18h21
  4. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53
  5. [sql] afficher deux champs de deux tables sans jointure
    Par Hell dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/06/2005, 12h38

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