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 :

Ne pas prendre les enregistrements de la jointure


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Par défaut Ne pas prendre les enregistrements de la jointure
    Bonjour,

    J'ai un petit soucis avec ma requête SQL (PostgreSQL). J'ai deux tables : d_user et d_forum_user_topic.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT u.usr_id, u.usr_pseudo FROM d_user u
    						LEFT JOIN d_forum_user_topic ut
    							ON ut.topic_id_ext = $topic
    						WHERE u.usr_id <> ut.usr_id_ext
    Je veux sélectionné l'ensemble des enregistrements de d_user SAUF ceux qui ont un enregistrement dans d_forum_user_topic avec dans le champs topic_id_ext la valeur de $topic.

    d_forum_user_topic a deux champs : usr_id_ext (le même que dans d_user pour le champs usr_id) et topic_id_ext.

    Si on a un seul enregistrement avec topic_id_ext = $topic dans d_forum_user_topic (que je vais appeler A), la requete me retourne bien tous les enregistrements sauf celui qui a le même usr_id que l'enregistrement A.
    Si on a 0 enregistrement A dans d_forum_user_topic, la requete ne retourne rien.
    Si on a 2 ou + enregistrements A dans d_forum_user_topic, la requete retourne tous les enregistrements même ceux ayant les mêmes usr_id que les enregistrements A.

    En gros, ma jointure ne se fait que sur 1 seul enregistrement.

    Il doit surement exister une solution (GROUP ou qqchose dans le genre)...
    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 218
    Billets dans le blog
    16
    Par défaut
    Je veux sélectionné l'ensemble des enregistrements de d_user SAUF ceux qui ont un enregistrement dans d_forum_user_topic avec dans le champs topic_id_ext la valeur de $topic.
    Quelque chose comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select usr_id, usr_pseudo 
    from   d_user u
    where  not exists
          (select  *
           from    d_form_user_topic ut
           where   u.usr_id = ut.usr_id_ext
           and     topic_id = $topic
          ) ;

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Par défaut
    Merci beaucoup, ça fonctionne impec.

  4. #4
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 218
    Billets dans le blog
    16
    Par défaut
    J'espère que vous avez pris le temps de vérifier la façon dont ça marche et de chercher des solutions alternatives...

    Bon courage pour la suite.

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

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 09h33
  2. Ne pas prendre les doublons de deux tables
    Par jsd03 dans le forum SQL
    Réponses: 4
    Dernier message: 09/09/2009, 11h20
  3. Réponses: 3
    Dernier message: 18/11/2008, 15h31
  4. [MySQL] Requete en Php: Ne lit pas tous les enregistrements d'une table
    Par smooncef dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/08/2008, 10h16
  5. Réponses: 2
    Dernier message: 26/02/2008, 23h32

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