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

MS SQL Server Discussion :

[SQL2005] [TSQL] Problème d'auto-jointure et *


Sujet :

MS SQL Server

  1. #1
    Invité
    Invité(e)
    Par défaut [SQL2005] [TSQL] Problème d'auto-jointure et *
    Bonjour tout le monde !

    Voilà, je sais pas trop comment rechercher une solution à mon problème, je vais essayer de vous l'exposer clairement...
    J'aimerai faire une auto-jointure et récupérer tous les champs ainsi créés (donc tous en deux exemplaires) mais avec des noms différents. Or, * me renvoie (très naturellement) les champs bien en double, mais avec le même nom.
    Ma question maintenant est de savoir si par hazard et avec beaucoup de chance, il n'existerait pas un moyen de renommer automatiquement la deuxième série de champs sans avoir besoin d'écrire les alias à la main...
    J'y crois pas trop, mais je préfère demander, les bonnes surprises ça arrive ^^

    Merci d'avance et s'il manque des infos, y a pas de soucis, je peux expliciter !

    PS: j'ai volontairement pas mis d'exemple concret avec mes noms de table, parce que sans tout le contexte autour, je pense que ça embrouillerait plus qu'autre chose mais je peux faire un exemple "simple" si c'est nécessaire pour que mon problème soit plus claire

    PS²: je savais pas trop si je devais poster dans ce forum ou dans "Langage SQL", j'espère avoir choisi juste ^^

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 848
    Points : 52 964
    Points
    52 964
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    il n'existerait pas un moyen de renommer automatiquement la deuxième série de champs sans avoir besoin d'écrire les alias à la main...
    Absolument pas et heureusement !
    SQL ne prende aucune décision tout seul. Ce serait dangereux...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  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,

    Il vaut mieux que tu réécrives la requête en ne prenant que les champs dont tu as besoin. Si la requête te renvoie deux fois la même colonne, alors il y en a une qui ne te sert à rien.
    Je crois aussi que le SELECT * est déconseillé dans les procédures stockées ou les triggers pour aider l'optimiseur de requêtes à générer le meilleur plan de requête.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses

    @SQLpro: Je pensais pas vraiment à de l'automatique, plutôt qu'on puisse lui dire de coller un préfixe devant les noms de colonnes pour la deuxième série par exemple, je sais pas, avec une fonction peut-être Mais bon,je suis pas une pro du SQL moi, je n'ai fait que des choses assez simples jusqu'à présent...

    @elsuket: La requête ne me renvoie pas deux fois la même chose ^^ mais elle regroupe les lignes de la table 2 par 2 et ne renvoie qu'une ligne de résultat pour chaque couple de lignes dans la table. Finalement, j'ai récupéré dans la deuxième série que 3 champs et j'ai lancé deux fois la requête quand je voulais toutes les infos pour chacune des deux lignes associées.

    J'sais pas si je suis très claire, mais c'est pas super clair pour moi non plus, car c'est un projet que je reprends en route, donc je dois modifier des procédure qui existe déjà

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 94
    Points
    94
    Par défaut
    Salut,

    une idée peut etre pas la meilleure , mais assez simple...
    renommer les champs dans tes tables, comme ca ils n'auront pas les meme noms

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bah si je fais une auto-jointure, ça changera rien de renommer les champs ^^

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

Discussions similaires

  1. [SQL2005][TSQL] Problème charset/collate
    Par luunaz dans le forum Développement
    Réponses: 12
    Dernier message: 28/07/2009, 21h10
  2. [SQL2005][TSQL]Problème de jointures multiples
    Par Veritas5 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2009, 17h04
  3. Problème d'auto-jointure (jointure N-N)
    Par jbliger dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/03/2009, 18h29
  4. Problème avec auto jointure
    Par freud dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/10/2008, 00h28
  5. [SQL2005][TSQL] Problème de curseur / Fonction ne "compile" pas
    Par Ivenoproblemwiththat dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/06/2007, 21h55

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