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 :

LEFT JOIN ou NOT EXISTS ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut LEFT JOIN ou NOT EXISTS ?
    Bonjour,

    J'ai deux tables :
    1/ dispose_ray (pseudo, nom_ray)
    2/ liste_ray (nom_ray, niveau)

    Quelle requete faire pour qu'apparaisse uniquement le nom des ray (liste_ray) ne figurant pas dans dispose_ray (dispose_ray) du pseudo ?

    Merci d'avance pour vos réponses,
    Cordialement,

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select LR.nom_ray
    from liste_ray LR 
      left join dispose_ray DR on LR.nom_ray = DR.nom_ray
    where DR.nom_ray IS NULL

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select LR.nom_ray
    from liste_ray LR 
      left join dispose_ray DR on LR.nom_ray = DR.nom_ray
    where DR.nom_ray IS NULL
    Salut,

    Merci pour ta réponse, ce code fonctionne bien sauf qu'il confond tous les pseudos, je reformule donc ma question :

    Quelle requete faire pour qu'apparaisse uniquement le nom des ray (liste_ray) que le pseudo figurant pas dispose_ray n'a pas encore ?

    Petit exemple :
    Si liste_ray contient : vert, bleu, jaune, rouge
    et dispose_ray 3 enregistrements
    1) ('toto', 'bleu');
    2) ('titi', 'rouge');
    3) ('titi', 'jaune');

    la requete avec toto n'affiche que vert, jaune, rouge (ray existants mais qu'il n'a pas encore dans sa liste) et la requete avec titi n'afiche que bleu, vert (ray qui existent mais qu'il n'a pas encore dans sa liste).

    Merci d'avance

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    OK.. en fait, tu veux les ray qui n'existent pas sur le pseudo interrogé ? C'est un peu plus compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT LR.nom_ray
    FROM liste_ray LR 
    WHERE NOT EXISTS (
      SELECT 1 
      FROM dispose_ray DR
      WHERE DR.pseudo = 'toto' AND DR.nom_ray = LR.nom_ray
    )

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut
    Citation Envoyé par Antoun Voir le message
    OK.. en fait, tu veux les ray qui n'existent pas sur le pseudo interrogé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT LR.nom_ray
    FROM liste_ray LR 
    WHERE NOT EXISTS (
      SELECT 1 
      FROM dispose_ray DR
      WHERE DR.pseudo = 'toto' AND DR.nom_ray = LR.nom_ray
    )
    Re !
    Merci c'est exactement çe que je cherchais à faire

    Merci beaucoup :-)

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

Discussions similaires

  1. [HQL] Left Join fetch et exists
    Par LittleBean dans le forum Hibernate
    Réponses: 3
    Dernier message: 23/10/2009, 15h41
  2. left join + not in
    Par pimpmyride dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/03/2007, 09h10
  3. LEFT JOIN à la placede NOT iN
    Par cari dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/08/2006, 16h32
  4. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  5. [JCreator] "package tools does not exists"
    Par snyper147 dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 2
    Dernier message: 04/05/2003, 20h08

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