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 :

Aide pour une requête double jointure


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut Aide pour une requête double jointure
    Salut à tous,

    Petit problème qui me donne la migraine. Voici ma base :



    Quelle requête (jointure ?) peut me lister, pour chaque affaire, le nom des deux personnes qui constituent le couple ?

    Petite difficulté supplémentaire, un couple n'est parfois constitué que d'une seule personne (les affaires ne concernent pas que les couples, dans ce cas c_pid2 = 0)

    D'avance merci

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Avez vous lu le cours sur les jointures ?


    petite remarque
    c_pid2 ne peut être égale à 0 sans qu'une personne dans la table "Personne" n'existe (si c_pid2 est une clé étrangères). par contre c_pid2 peut être NULL.

    Et Pourquoi c_pid1 ne pourrait pas être NULL (ou égale à 0) ?

  3. #3
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    Avez vous lu le cours sur les jointures ?
    Oui mais j'avoue être un peu largué ...

    Et Pourquoi c_pid1 ne pourrait pas être NULL (ou égale à 0) ?
    Mon application traite du rachat de crédits. Dans une affaire, il y a au moins un emprunteur (mais pas toujours de co-emprunteur).

  4. #4
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Voici le lien de cours qui permet de faire cela (comme le modèle de stringBuilder)

    Mon application traite du rachat de crédits. Dans une affaire, il y a au moins un emprunteur (mais pas toujours de co-emprunteur).
    Ok, mais il ne peut y avoir qu'un seul co-emprunteur ?

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Et surtout, ne peut-il y avoir plus de deux co-emprunteurs ???

    Quid d'un emprunt fait par une fraterie ?

    En tout cas, je plussoie là direction où Olivier veut t'emmener : vire ta table "couple", et crée une table de correspondance :

    coemprunter
    id
    id_affaire
    id_personne

  6. #6
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    Ok, mais il ne peut y avoir qu'un seul co-emprunteur ?
    ... ben non !
    S'il n'y a qu'une seule personne, c'est forcément l'emprunteur.

    Et surtout, ne peut-il y avoir plus de deux co-emprunteurs ???
    Quid d'un emprunt fait par une fraterie ?
    Mon application ne gère pas ce cas. Dans 99% des cas, il s'agit de ménages (homme/femme mariés ou non)

    En tout cas, je plussoie là direction où Olivier veut t'emmener : vire ta table "couple", et crée une table de correspondance :

    coemprunter
    id
    id_affaire
    id_personne
    ... mouais. Je vais voir de ce coté-là.

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ben :
    - Ça évite de mettre des NULL dans une clé étrangère (ce qui est par définition une erreur de conception)
    - Ça permet de gérer tous les cas possibles, c'est à dire les 99% mais aussi les dizaines de moutons à 5 pattes que représente le dernier pourcent.
    - Ça permet de faire le lien entre une affaire et l'ensemble des co-emprunteurs en une seule jointure, ce qui est à la fois plus maintenable, plus performant, et plus facile à relire d'un point de vue programmation... et surtout, c'est évolutif sans devoir modifier le code.

  8. #8
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM affaire INNER JOIN COUPLE INNER JOIN PERSONNE P1 LEFT OUTER JOIN PERSONNE P2
    Je te laisse compléter la requête.

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

Discussions similaires

  1. Demande d'aide pour une requête avec jointure
    Par marcoxavier dans le forum Développement
    Réponses: 8
    Dernier message: 26/05/2015, 16h04
  2. J'ai besoin de votre aide pour une requête
    Par ovdz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/05/2005, 11h42
  3. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 02h40
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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