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 :

Problème requête double jointure


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Points : 51
    Points
    51
    Par défaut Problème requête double jointure
    Bonjour,
    Voici deux tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SITES                             LIENS
    ------------                    ----------------
    id    numeric(5)                 id    numeric(5)
    adresse varchar(50)          refsite numeric(5)
    datedecreation  Date         lienid numeric(5)
     
    La jointure simple se fait donc par id (de sites) = refsite (de lien)
    Je veux écrire une requête SQL qui m'affiche : toutes les adresse des liens présents sur le site de id=5.

    Je dois donc récupérer tous les liens dans la table LIENS (pour refsite=5).
    Tous ces liens auront un lienid.
    Avec ce lienid je dois retourner dans la table SITES et chercher l'adresse du site.

    Pouvez vous m'aider?

    Merci!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Lisez ceci (voir tous les tutos sql en fait) : http://sqlpro.developpez.com/cours/sqlaz/jointures/

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Points : 51
    Points
    51
    Par défaut
    Bonjour,
    Merci pour ta réponse mais j'avais déjà regardé les tutos.

    Malgré ça je n'arrive pas à faire cette requête... Je pense devoir faire deux jointures (inner join) mais je n'y arrive pas!

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Qu'avez-vous fait?
    Mettez le code + les erreurs ...

    Vous n'aurez besoin que d'une seule jointure en inner join.

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par alex2746 Voir le message
    Bonjour,
    Voici deux tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SITES                             LIENS
    ------------                    ----------------
    id    numeric(5)                 id    numeric(5)
    adresse varchar(50)          refsite numeric(5)
    datedecreation  Date         lienid numeric(5)
     
    La jointure simple se fait donc par id (de sites) = refsite (de lien)
    Je veux écrire une requête SQL qui m'affiche : toutes les adresse des liens présents sur le site de id=5.
    Je ne comprends pas bien : lienid référence site, si j'ai bien compris. Mais ici ta relation est de type 0-1. Ou alors LIENS.refsite reference SITES.id et LIENS.lienid fait la même chose (avec n lignes dans LIENS pour un LIENS.id donné) ? et que contient LIENS.id dans ce cas ?

    Est ce à dire que LIEN est une table de liaison M-N sur SITES -> SITES ?

    Merci d'être plus précis ou mieux de poster le DDL des tables pour avoir les relations.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    EDIT : je crois avoir compris (mais ton id dans la table LIENS ne sert strictement à rien - pourquoi l'avoir mis ?)

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT S.ADRESSE FROM LIENS L
      JOIN SITES S
         ON S.ID= L.LIENID
    WHERE L.REFSITE = 5
    Accessoirement, le nommage de tes colonnes est totalement contre-intuitif.

    Si en revanche tu veux connaitre les adresses liées à une adresse donnée, tu devras faire une double jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT S.ADRESSE FROM SITES S
      JOIN  LIENS L
        ON S.ID= L.LIENID
       JOIN SITES S2
        ON S2.ID = L.REFSITE
    WHERE S2.ADRESSE = 'adresse dont on recherche les liens'

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. [XL-2007] Problème Requête avec Jointure de plusieurs Tables VBA
    Par fleur_d_eden dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2012, 11h03
  2. [MySQL] problème requête complexe - jointures ?!
    Par PadaBen dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 24/05/2012, 22h59
  3. Problème requête avec jointures multiples
    Par babouu dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/12/2011, 17h16
  4. Problème : Requête double les enregistrements !
    Par Aost dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/06/2006, 17h44
  5. Réponses: 6
    Dernier message: 20/09/2004, 15h26

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