Autojointure oracle

Résolu
dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   -  
dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   -
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. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    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
  2. dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
  3. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    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
  4. dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   2
     
    and c1.salaire = c2.salaire, faut juste remplacer le deuxieme " and " par " = " et ça fonctionne pas tjrs...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    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
  7. dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   2
     
    mais pourquoi le " c1.id_c != c2.id_c " ??
    0
  8. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    Déjà est-ce que cela fonctionne ou pas ?
    0
  9. dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   2
     
    Ca fonctionne oui: mais pk ça doit être comme ca, parce que je n'arrive pas à voir l'interet
    0
    1. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
       
      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. dev_man Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   2
       
      Eeeet Oui d'acc Merci jee pee :D
      0