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 :
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';
reuqête 2:
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;
Les deux premières me donnent le même résultat qui est le suivant :
Hartstein MK_MAN 20 Marketing
Fay MK_REP 20 Marketing

Par contre la reuqête 3:
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';
Ne me donne pas le même résultat ..!! mais je ne sais pas pourquois ..!!
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.