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 9458 Date d'inscription   Statut Modérateur Dernière intervention   10 013
     
    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 9458 Date d'inscription   Statut Modérateur Dernière intervention   10 013
     
    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 9458 Date d'inscription   Statut Modérateur Dernière intervention   10 013
     
    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 9458 Date d'inscription   Statut Modérateur Dernière intervention   10 013
     
    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 9458 Date d'inscription   Statut Modérateur Dernière intervention   10 013
       
      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