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

Développement SQL Server Discussion :

[Requête SQL] Relation d'une table à elle-même


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Points : 71
    Points
    71
    Par défaut [Requête SQL] Relation d'une table à elle-même
    Bonjour,

    J'ai un petit problème avec une requête.
    Je souhaiterais avoir le nom du menu parent sur la même ligne que le menu enfant dans ma vue, j'ai donc defini une FK sur menweb_parent vers la PK menweb_code.

    Le soucis est que je ne parviens pas à avoir une requête correcte, celle-ci me dit que je retourne plusieurs lignes.
    Je suis un peu paumé sur ce coup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT     menweb_code, menweb_libelle, menweb_parent, menweb_fichier, menweb_ordre, menweb_parametre, menweb_activer, menweb_status,
                              (SELECT     menweb_libelle
                                FROM          dbo.Menu_Web
                                WHERE      (menweb_parent = menweb_code)) AS menweb_parent_name
    FROM         dbo.Menu_Web AS vue_menu_web
    WHERE     (menweb_parent = menweb_code)
    Je vous remercie d'avance pour votre aide,

    Axel Masset

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Points : 71
    Points
    71
    Par défaut
    En fait j'ai trouvé en cherchant un peu.
    il me suffit en fait de créer deux alias pour une même table.
    C'est tout bête

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Rien ne vous empêche de faire une jointure sur la table elle même plutôt qu'une jointure triangulaire, qui est contre-performante.
    N'écrivez pas vos jointures dans un WHERE

    Essayez d'écrire votre requête sur le modèle suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT PARENT.menweb_code,
    		PARENT.menweb_libelle,
    		PARENT.menweb_parent,
    		PARENT.menweb_fichier,
    		PARENT.menweb_ordre,
    		PARENT.menweb_parametre,
    		PARENT.menweb_activer,
    		PARENT.menweb_status,
    		ENFANT.menweb_libelle AS menweb_parent_name
    FROM dbo.Menu_Web AS PARENT
    JOIN dbo.Menu_Web AS ENFANT ON PARENT.menweb_parent = ENFANT.menweb_code
    @++

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Ha, vous avez été trop rapide

    @++

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Points : 71
    Points
    71
    Par défaut

    Merci tout de même , c'est tout juste ce que je venais de trouver.

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

Discussions similaires

  1. [Débutant] EF4.1 et relation d'une table vers elle même
    Par 105rn2 dans le forum Entity Framework
    Réponses: 6
    Dernier message: 24/04/2013, 19h14
  2. Comparer une table à elle-même
    Par Leehan dans le forum Langage SQL
    Réponses: 25
    Dernier message: 20/08/2012, 09h59
  3. [débutant] Cayenne; relation d'une table sur elle même.
    Par hhenry dans le forum Persistance des données
    Réponses: 0
    Dernier message: 22/08/2009, 15h05
  4. requète sql et ajout à une table
    Par carlostropico dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/02/2009, 08h49
  5. Relation d'une table sur elle-même ?
    Par TallyHo dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/10/2007, 00h14

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