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 :

SUIS PROFANE


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 19
    Par défaut SUIS PROFANE
    Bonjour je dispose d'une table nommé : accountp qui contient les champs
    ri et mn10, et d'une table nommé account contenant les champs profile et number. la valeur du champ profile de la table account correspond au champ ri de la table accountp. Evidemment lorsque je fai une requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select profile from account;
    J'ai pour chaque ligne le ri. comment faire pour une requête m'affiche le mn10 au lieu du ri. Etant donné qu'à chaque ri correspond un mn10.

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Par défaut
    Salut,

    Bon, alors tout d'abord, petit cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ1 champ2 from table1
    te permet de recuperer les champs appelé champ1 et champ2 dans la table table1.

    Donc, si tu veux recuperer tes champs mn10 qui sont dans la table accountp, il faut que ta requete soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select mn10 from accountp
    Cette requete t'affichera la liste des mn10...

  3. #3
    Membre expérimenté Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Par défaut
    Salut,

    tout d'abord ca fait plaisir de rencontrer un sénégalais, j'ai vécu à Dakar pendant 4 ans.

    Sinon pour ta question tu as déjà une première réponse.
    Sinon, si jamais il y a une différence de remplissage entre tes tables account et accountp tu peux aussi joindre les 2 tables de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT profile, mn10 
    FROM account, accountp
    WHERE ri=profile;
    amicalement...

  4. #4
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 19
    Par défaut
    J'au fait une erreur dans ma question. En effet je veux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select profile,number from account;
    et obtenir pour profile le mn10 correspndant dans la table accountp.

    Merci

  5. #5
    Membre expérimenté Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Par défaut
    La requête que je t'ai fournie donne bien le résultat que tu attends...

  6. #6
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 19
    Par défaut
    Non je suis désolé.

    Je répète pour me faire comprendre

    les valeurs du champ profile de la table account sont prises de la colonne ri de la table accountp. ainsi donc au lieu d'affiche le champ profile, je veux afficher la valeur de mn10 correspondant: Exemple

    table1 : account

    ri mn10

    12 PRO
    13 CLASSIC
    14 JEUNES
    15 TERANGA


    Table2 : accountp

    Number Profile
    6452891 12
    6377379 13
    6279899 15
    5321345 12
    6755532 14
    5432678 15


    Je veux avoir le résultat suivant dans ma requête :
    6452891 PRO
    6377379 CLASSIC
    6279899 TERANGA
    5321345 PRO
    6755532 JEUNES
    5432678 TERANGA

    Merci

  7. #7
    Membre expérimenté Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Par défaut
    Dans ce cas tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT number, mn10 
    FROM account, accountp 
    WHERE ri=profile;

  8. #8
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 19
    Par défaut
    Ci dessous l'erreur généré dans ce cas


    ORA-00918: column ambiguously defined

  9. #9
    Membre expérimenté Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Par défaut
    Cette erreur vient du fait que tu asde colonnes nommées pareil dans tes 2 tables, pour pallier à ce pb tu nommes tes tables explicitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT accountp.number, account.mn10 
    FROM account, accountp 
    WHERE account.ri=accountp.profile;

  10. #10
    Membre averti
    Inscrit en
    Avril 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 20
    Par défaut
    En fait, une de tes colonnes citées dans ta requête existe dans chaque table. On ne sait donc pas laquelle prendre : il faut préciser comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT b.number, a.mn10 
    FROM account a, accountp b
    WHERE a.ri=b.profile;
    Mais il y a un truc bizarre : aucune colonne ne s'appelle de la même manière, donc cette erreur ne devrait pas remonter. T'es sur de nous avoir donner les bons noms de colonnes ?

    EDIT : Oups, le Nantais a répondu un peu avant moi... Je laisse quand même ma réponse, comme ça tu vois qu'on peut utiliser des alias pour ne pas réécrire le nom des tables devant chaque colonne. De même t'es pas obligé de préfixer une colonne si elle n'existe que dans une seule table (mais bon perso, je trouve pas ça très propre)...

  11. #11
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 19
    Par défaut
    MERCI A TOUS. ça MARCHE

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/08/2005, 11h20
  2. DLL et MainForm je suis perdu !
    Par rudy2 dans le forum C++Builder
    Réponses: 28
    Dernier message: 02/01/2005, 19h08
  3. Installation de Visual Editor - je suis désespéré
    Par tomy29 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/07/2004, 23h17
  4. Je suis un gros boulet ou comment faire de la 2D avec DX
    Par Freakazoid dans le forum DirectX
    Réponses: 4
    Dernier message: 19/06/2004, 16h55

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