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 :

double jointure et un where


Sujet :

Langage SQL

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut double jointure et un where
    Bonjour

    J'aimerai regrouper l'ensemble des rencontres pour un club ( ici 518323) avec tout ce qui se trouve dans le select, en réalisant deux jointures :

    la première entre results.num_equipe_result et rencontres.num_locaux_rencontre
    la deuxième entre results.num_equipe_result et rencontres.num_visiteurs_rencontre


    Le problème est qu'il m'affiche trois fois la même rencontre, mais avec un result.choix_result différent


    ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT results.nom_equipe_result, rencontres.date_rencontre,rencontres.nom_locaux_rencontre,rencontres.nom_visiteurs_rencontre,rencontres.niveau_rencontre,rencontres.tour_rencontre,rencontres.categorie_rencontre, results.choix_result
     
    FROM results, rencontres where num_equipe_result like '518323' and (results.num_equipe_result = rencontres.num_visiteurs_rencontre or results.num_equipe_result = rencontres.num_locaux_rencontre) 
     
    order by rencontres.date_rencontre, rencontres.categorie_rencontre
    Je vous ai mis ma structure en pièce jointe. Je sais, qu'il y a surment mieux !!!

    merci pour votre aide

  2. #2
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    voila, j'ai réussit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT rencontres.date_rencontre,rencontres.nom_locaux_rencontre,rencontres.nom_visiteurs_rencontre,rencontres.niveau_rencontre,rencontres.tour_rencontre,rencontres.categorie_rencontre, results.choix_result 
     
    FROM results, rencontres
     
    where results.num_rencontre_result like rencontres.num_rencontre 
     and (rencontres.num_locaux_rencontre like '518323' or rencontres.num_visiteurs_rencontre like '518323') and  num_equipe_result like '518323'
     
    order by rencontres.date_rencontre, rencontres.categorie_rencontre
    si quelqu'un voit quelque chose de mieux, je suis preneur ...

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Oui on peut écrire un peu mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT
        RC.date_rencontre,
        RC.nom_locaux_rencontre,
        RC.nom_visiteurs_rencontre,
        RC.niveau_rencontre,
        RC.tour_rencontre,
        RC.categorie_rencontre,
        RS.choix_result 
    FROM
        results RS
        INNER JOIN rencontres RC
          ON RC.num_rencontre = RS.num_rencontre_result
    WHERE
        (RC.num_locaux_rencontre = '518323'
      OR RC.num_visiteurs_rencontre = '518323')
    AND RS.num_equipe_result = '518323'
    ORDER BY
        RC.date_rencontre ASC,
        RC.categorie_rencontre ASC
    Vous êtes sûr d'avoir besoin de tous ces filtres dans le where ?

  4. #4
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Oui on peut écrire un peu mieux :
    [code]SELECT
    RC.date_rencontre,
    RC.nom_locaux_rencontre,
    RC.nom_visiteurs_rencontre,
    RC.niveau_rencontre,
    RC.tour_rencontre,
    RC.categorie_rencontre,
    RS.choix_result
    C'est quoi rc et rs?

    Where ==> oui car je veux trouver les club qui ont joué à domcicile et a l'exterieur

  5. #5
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Citation Envoyé par ledisciple Voir le message
    C'est quoi rc et rs?

    Where ==> oui car je veux trouver les club qui ont joué à domcicile et a l'exterieur
    rc et rs correspondent à vos alias de table :

    results --> RS
    rencontres --> RC

    Cela permet de ne pas à avoir réécrire le nom des tables en entier lorsque cela est nécessaire (ambiguité d'une colonne par exemple) et de pouvoir qualifier quelles colonnes appartient à quelles tables d'un seul coup d'oeil (je trouve cela pratique personnellement pour la lisibilité)

    ++

  6. #6
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut précision
    Et ?

    Citation Envoyé par ledisciple Voir le message
    where results.num_rencontre_result like rencontres.num_rencontre
    versus

    Citation Envoyé par Waldar Voir le message
    INNER JOIN rencontres RC
    ON RC.num_rencontre = RS.num_rencontre_result
    une question de lisibilité aussi?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Oui, mais c'est aussi la norme pour l'écriture des jointures depuis 1992.

  8. #8
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    oki merci beaucoup !!!

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

Discussions similaires

  1. Double jointure, léger problème.
    Par SiM07 dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/12/2006, 16h12
  2. requete avec double jointure externe
    Par cdu dans le forum Langage SQL
    Réponses: 8
    Dernier message: 04/01/2006, 14h54
  3. INNER JOIN ... ON ... ou jointure dans clause where
    Par schmur1 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 28/06/2005, 09h16
  4. Doubles jointures externes....
    Par HPJ dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/11/2004, 15h28
  5. [jointure]requete possible de double jointure entre 2 tables
    Par akira_le_gaucher dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2004, 15h03

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