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 :

Requête SQL particulière


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 73
    Points : 34
    Points
    34
    Par défaut Requête SQL particulière
    Bonjour,
    voici mes tables :
    activites(Num_activite, designation,type,....)
    inscriptions(num_inscription,num_participant, num_activite,presence,....)
    participants(num_participant,titre,nom,prenom,...)
    paye(num_paye,num_activite, num_participant,montant,...)

    Je dois faire la liste des personnes inscrites dans inscriptions qui n'ont pas payés (donc pas d'enregistrement dans paye)

    voici ma requête (qui ne fonctionne pas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT participants.nom, participants.courriel 
    FROM participants
    inner join inscriptions 
        on participants.num_participant=inscriptions.num_participant
    inner join activites 
        on inscriptions.num_activite= activites.num_activite
    left outer join paye 
        on inscriptions.num_activite=paye.num_activite
    WHERE activites.num_activite=1552 and paye.num_paye is null
    Auriez-vous une idée du problème ?
    Je vous remercie
    Nicolas

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 138
    Points : 1 918
    Points
    1 918
    Par défaut
    Bonjour,

    Pour vérifier qu'il n'y a pas de correspondance tu peux utiliser une condition NOT EXISTS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT participants.nom, participants.courriel 
    FROM participants
    WHERE NOT EXISTS (select 1 from inscriptions 
                      join activites on inscriptions.num_activite= activites.num_activite
                      join paye on inscriptions.num_activite=paye.num_activite
                      where activites.num_activite=1552
                        and participants.num_participant = inscriptions.num_participant
                     );

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour

    Le problème n'est pas tant d'utiliser une requête basée sur NOT EXISTS ou sur une jointure OUTER avec un test de nullité d'une colonne NOT NULL, les deux techniques sont valables. Le problème est que le critère de jointure de la table OUTER est incomplet : il faut ajouter le n° de participant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    left outer join paye 
        on paye.num_activite    = inscriptions.num_activite
       and paye.num_participant = participants.num_participant
    Et plutôt que de trimbaler des noms de tables in extenso, l'usage d'alias est quand même bien plus pratique

Discussions similaires

  1. Requête SQL particulière
    Par nicodespiennes dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/12/2020, 20h54
  2. Requête SQL particulière
    Par Danyel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/02/2012, 11h41
  3. [SQL] Requête assez particulière
    Par rems033 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/06/2008, 15h37
  4. Requête SQL particulière dans procédure stockée
    Par stephane.julien dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/05/2008, 10h56
  5. Requête SQL particulière
    Par stephane.julien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/03/2008, 09h32

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