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

  1. #1
    Nouveau membre du Club
    [sql server]2 colonnes identiques lors du résultat d'une requête.
    Bonjour,

    J'ai une table MaTable1 qui a comme nom de colonnes :
    PERSONNE, EQUIPE, AGE
    et une table MaTable2 qui a comme nom de colonnes :
    PERSONNE, SPORTIF

    Lorsque je fais :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM MaTable1, MaTable2
    WHERE MaTable1.PERSONNE = MaTable2.PERSONNE


    j'obtiens comme noms de colonnes :
    PERSONNE, EQUIPE, AGE, PERSONNE, SPORTIF

    Et lorsque je fais :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PERSONNE,EQUIPE,AGE,SPORTIF
    FROM MaTable1, MaTable2
    WHERE MaTable1.PERSONNE = MaTable2.PERSONNE


    J'obtiens :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    'PERSONNE' : nom de colonne ambigu.


    Comme est-ce qu''il faut faire pour que PERSONNE n'apparaisse qu'une fois ?

    Merci

  2. #2
    Rédactrice

    personne de ta table 2 est une clé étrangère FK tu as bien spécifié cela?
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  3. #3
    En attente de confirmation mail
    mets alors :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MaTable1.PERSONNE,EQUIPE,AGE,SPORTIF
    FROM MaTable1, MaTable2
    WHERE MaTable1.PERSONNE = MaTable2.PERSONNE


    ça parrait si facile que je me trompe est ce que j'ai bien compris ton prob
    Le vieillard regardait le soleil qui se couche;
    Le soleil regardait le vieillard qui se meurt.
    Hugo (Victor)

  4. #4
    Nouveau membre du Club
    Citation Envoyé par Ensiaste2006
    mets alors :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MaTable1.PERSONNE,EQUIPE,AGE,SPORTIF
    FROM MaTable1, MaTable2
    WHERE MaTable1.PERSONNE = MaTable2.PERSONNE


    ça parrait si facile que je me trompe est ce que j'ai bien compris ton prob
    J'ai simplifié mon problème mais en fait l'écriture que tu as proposé n'est pas possible dans mon cas car je fais des
    requetes imbriquées car je ne peux pas créer de vue (je n'ai que les droits en lecture sur la base de données sur laquelle je travaille).
    Donc je ne peux pas faire MaTable1.PERSONNE dans le select car MaTable1 n'existe pas encore.
    Ma requete est de ce type :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM(SELECT PERSONNE, EQUIPE, AGE
             FROM  TablePersonne) MaTable2, (SELECT PERSONNE, SPORTIF
                                                             FROM   TableSportif) MaTable3
    WHERE MaTable2.PERSONNE=MaTable3.PERSONNE

  5. #5
    Membre éprouvé
    hé faudrait poser le problème tel qu'il est au départ hein ?


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT matable2.personne, equipe, age, sportif
    FROM(SELECT PERSONNE, EQUIPE, AGE
             FROM  TablePersonne) MaTable2, (SELECT PERSONNE, SPORTIF
                                                             FROM   TableSportif) MaTable3
    WHERE MaTable2.PERSONNE=MaTable3.PERSONNE
    Emmanuel T.

###raw>template_hook.ano_emploi###