Autojointure oracle

Résolu
Bonjour,

j'ai une table définit comme suit :

CREATE TABLE chercheurs (id_c INTEGER NOT NULL PRIMARY KEY,
nom_c VARCHAR(20),
salaire FLOAT,
ville VARCHAR(20)
);

et remplie avec les données suivantes :

INSERT INTO chercheurs VALUES (1,'Dupont',35000, 'Brest');
INSET INTO chercheurs VALUES (2,'Dupond',40000, 'Brest');
INSERT INTO chercheurs VALUES (3,'Durand',42000, 'Paris');
INSERT INTO chercheurs VALUES (4,'Durant',40000, 'Paris');
INSERT INTO chercheurs VALUES (5,'Dumont',40000, 'Paris');

la question est la suivante :

chercheurs qui habitent dans la même ville et qui ont le même salaire ?

8 réponses

  1. Modérateur
    Salut,

    Sur le principe nous aidons les intervenants sur CCM. Mais nous ne réalisons pas leurs devoirs à leur place.

    Tu nous proposes quoi comme solution à la question ?

    cdlt

    0
    1. ma solution c'était d'utiliser une auto-jointure, mais le problème n'est pas encore résolu :

      select nom_c from chercheurs c1, chercheurs c2 where c1.ville= c2.ville and c1.salaire and c2.salaire;

      qu'est ce tu propose comme solution toi ?
      0
      1. Modérateur
        Tu ne t'ai pas foulé : and c1.salaire and c2.salaire; ça ne veut rien dire et n'a aucune chance de fonctionner.
        0
        1. and c1.salaire = c2.salaire, faut juste remplacer le deuxieme " and " par " = " et ça fonctionne pas tjrs...
          0
          1. Modérateur
            Peut être en rajoutant

            select c1.nom_c from chercheurs c1, chercheurs c2
            where c1.ville= c2.ville
            and c1.salaire = c2.salaire
            and c1.id_c != c2.id_c
            0
            1. mais pourquoi le " c1.id_c != c2.id_c " ??
              0
              1. Modérateur
                Déjà est-ce que cela fonctionne ou pas ?
                0
                1. Ca fonctionne oui: mais pk ça doit être comme ca, parce que je n'arrive pas à voir l'interet
                  0
                  1. Modérateur
                    Parce que si tu ne mets pas c1.id_c != c2.id_c comme s'est une auto jointure sur une même table, pour un chercheur il y aura toujours quelqu'un répondant à la question même ville, même salaire : lui ;-)
                    0
                  2. Eeeet Oui d'acc Merci jee pee :D
                    0