Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requète SQL depuis 3 tables

Sujet résolu
    27 avril 2011 à 15:57:57

    Bonjour, j'ai un petit soucis avec un SELECT depuis 3 tables bref voilà ce qui m'est demandé :
    - Afficher le Last_name, job_id, department_id, department_name, city.

    Voiçi un schémas de la base :

    Image utilisateur

    Mon soucis c'est avec "department_id" , quand je l’enlève du SELECT ça marche :

    SELECT LAST_NAME, JOB_ID, DEPARTMENT_name, CITY
    FROM EMPLOYEES E
    JOIN DEPARTMENTS D
    ON D.MANAGER_ID = E.MANAGER_ID
    JOIN LOCATIONS L
    ON D.LOCATION_ID = L.LOCATION_ID
    


    Par contre dès que je l'ajoute il y a une erreur "ERROR at line 1:
    ORA-00918: column ambiguously defined " ..

    Merci de m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
      27 avril 2011 à 16:05:59

      Précise la table, vu qu'il y a une colonne departement_id dans employees et dans departement, il est tout perturbé le pauvre, il sait pas ce que tu lui demandes. Bien sûr dans ce cas-ci, ces deux colonnes contiennent la même chose, mais ça il ne le sait pas.

      SELECT DEPARTEMENTS.departement_id ....
      • Partager sur Facebook
      • Partager sur Twitter
        27 avril 2011 à 16:13:51

        Citation : Taguan

        Précise la table, vu qu'il y a une colonne departement_id dans employees et dans departement, il est tout perturbé le pauvre, il sait pas ce que tu lui demandes. Bien sûr dans ce cas-ci, ces deux colonnes contiennent la même chose, mais ça il ne le sait pas.

        SELECT DEPARTEMENTS.departement_id ....



        Merci pour ta réponse, mais ...

        Image utilisateur
        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2011 à 16:27:30

          Merci de m'avoir appris a spécifier quand la valeur se trouve dans plusieurs table, ça a marcher avec un D.DEPARTMENT_ID.

          Sinon comment faire pour afficher ses informations seulement pour une seule ville bien spécifique ?

          J'ai essayer un :

          WHERE CITY = 'Oxford'
          


          Mais en vain.
          • Partager sur Facebook
          • Partager sur Twitter
            27 avril 2011 à 19:34:11

            Ou sinon au lieu de :

            t1 JOIN t2 ON (t1.colonne = t2.colonne)
            


            tu peux faire

            t1 JOIN t2 USING (colonne)
            


            ce qui présente deux avantages :

            1- c'est plus lisible
            2- la colonne n'est qu'en un seul exemplaire dans le résultat (même si tu fais SELECT *) donc pas d'ambiguité !

            > Mais en vain.

            il se passe quoi ?
            • Partager sur Facebook
            • Partager sur Twitter
              27 avril 2011 à 20:24:28

              Citation : Lord Casque Noir

              Ou sinon au lieu de :

              t1 JOIN t2 ON (t1.colonne = t2.colonne)
              



              tu peux faire

              t1 JOIN t2 USING (colonne)
              



              ce qui présente deux avantages :

              1- c'est plus lisible
              2- la colonne n'est qu'en un seul exemplaire dans le résultat (même si tu fais SELECT *) donc pas d'ambiguité !

              > Mais en vain.

              il se passe quoi ?


              Merci pour ta réponse, c'est juste que je suis obligé d'utiliser la méthode "ON" dans mon exercice.

              Pais "mais en vain" c'est quand j’essaie d'afficher les employés de la ville d'Oxford seulement en utilisant un "WHERE", ça me fait une erreur que je n'arrive pas a résoudre.
              • Partager sur Facebook
              • Partager sur Twitter
                27 avril 2011 à 23:25:40

                Citation : Even.

                ça me fait une erreur que je n'arrive pas a résoudre.



                moui, mais quel genre d'erreur ?
                • Partager sur Facebook
                • Partager sur Twitter

                Requète SQL depuis 3 tables

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown