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 :

Afficher tous les enregistrements même ceux ne respectant pas la clause WHERE


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Afficher tous les enregistrements même ceux ne respectant pas la clause WHERE
    Bonjour, je n'arrive pas à construire, à partir de 2 tables, une requête SQL qui affiche les résultats souhaités (voir ci-dessous)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Table: PERSONNE
    *************
    ID | NOM
    ---|---------
    1  | Pierre
    2  | Marie
    3  | Henri
    4  | Rose
    5  | Jacques
    6  | Paul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Table: VACCIN
    *************
    ID | TYPE  | DATE
    ---|-------|-----
    1  | DTCoq | 2011
    1  | BCG   | 2012
    1  | RRO   | 2009
    2  | DTCoq | 2010
    3  | BCG   | 2011
    4  | DTCoq | 2008
    4  | RRO   | 2009
    4  | BCG   | 2010
    6  | BCG   | 2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    *************************************
    Résultats souhaités de la requête SQL
    *************************************
    
    NOM    | TYPE | DATE      NOM    | TYPE  | DATE      NOM    | TYPE | DATE
    -------|------|-----      -------|-------|-----      -------|------|-----
    Henri  | BCG  | 2011      Henri  | DTCoq |           Henri  | RRO  |     
    Jacques| BCG  |           Jacques| DTCoq |           Jacques| RRO  |     
    Marie  | BCG  |       ou  Marie  | DTCoq | 2010  ou  Marie  | RRO  |     
    Paul   | BCG  | 2007      Paul   | DTCoq |           Paul   | RRO  |     
    Pierre | BCG  | 2012      Pierre | DTCoq | 2011      Pierre | RRO  | 2009
    Rose   | BCG  | 2010      Rose   | DTCoq | 2008      Rose   | RRO  | 2009
    La requête suivante me shunte tous les enregistrement ayant une date vide (clause WHERE non trouvée), ce qui est plutôt logique...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PERSONNE.NOM, VACCIN.TYPE, VACCIN.DATE
    FROM PERSONNE LEFT OUTER JOIN VACCIN ON PERSONNE.ID = VACCIN.ID
    WHERE VACCIN.TYPE="BCG";
    Merci de me guider dans ma quête.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  personne.nom
        ,   vaccin.type
        ,   vaccin.date
    FROM    personne
        LEFT OUTER JOIN 
            vaccin 
            ON  personne.id = vaccin.id
            AND vaccin.type = 'bcg'
    ;
    En écrivant WHERE vaccin.type = 'bcg', tu interdis que vaccin.type soit NULL et tu supprimes l'effet de la jointure externe.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci «al1_24» pour cette réponse rapide, je ne peux pas tester pour le moment.
    Mais avec plus de 4500 messages sur ce forum, je ne doute pas que cette requête fonctionne à merveille.

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

Discussions similaires

  1. afficher tous les enregistrements
    Par MORPHEUS50 dans le forum IHM
    Réponses: 7
    Dernier message: 26/06/2007, 16h29
  2. [MySQL] afficher tous les enregistrements sélectionnés par checkbox
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/03/2007, 12h28
  3. Réponses: 3
    Dernier message: 28/10/2005, 14h03
  4. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 08h35

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