Salut tout le monde,
Je travail sur le sechma (employees, departments et locations) founit par les exemple de Oracle sur la 9i.
Et j'ai trois requête à comparer :
requête 1 :
reuqête 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT last_name, job_id, d.department_id, department_name FROM hr.employees e JOIN hr.departments d ON(e.department_id=d.department_id) JOIN hr.locations l ON(d.location_id=l.location_id) WHERE l.city = 'Toronto';
Les deux premières me donnent le même résultat qui est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT last_name, job_id, d.department_id, department_name FROM hr.departments d, hr.employees e, hr.locations l WHERE l.city = 'Toronto' AND e.department_id=d.department_id AND d.location_id = l.location_id;
Hartstein MK_MAN 20 Marketing
Fay MK_REP 20 Marketing
Par contre la reuqête 3:
Ne me donne pas le même résultat ..!! mais je ne sais pas pourquois ..!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT last_name, job_id, department_id, department_name FROM hr.employees NATURAL JOIN (hr.departments NATURAL JOIN hr.locations) WHERE city = 'Toronto';
elle retourne une seule ligne :
Fay MK_REP 20 Marketing
Pour moi elle est sencée me donner le même résultat des deux premières requêtes ...!!
Merci pour vos réponses.
Partager