* Bonjour, *

J’ai créé une table « etudiant » =>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
create table etudiant (
IdEtudiant  number(5),
nomEtudiant varchar(5),
idProf number(5)
)
Et une table « Prof »
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Create table Prof (
idProf  number(5),
nomProf  varchar(5),
PrenomProf  varchar(5),
Matiere varchar(5)
)
Et j’ai inséré les données suivantes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Insert Into Prof Values('1','test1','test1', 'math')
Insert Into Prof Values('2','test2','test2', 'phy')
insert into Prof values('3','test3','test3', 's')
 
Insert Into Etudiant Values('4','test1','1');
Insert Into Etudiant Values('5','test2','2');
insert into etudiant values('6','test3','5');
Mais quand je fais cette requête

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Select *
From etudiant  et , Prof  p
Where Et.Idprof = P.Idprof
=>Il me donne deux enregistrements
Et cette requete

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Select *
From Etudiant  Et , Prof  P
Where Et.Idprof (+)= P.Idprof
=> Me donne 3 enregistrements (avec des valeurs null pour les informations d étudiant)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Select *
From Etudiant  Et , Prof  P
Where Et.Idprof = P.Idprof(+)
=> Me donne 3 enregistrements avec des valeurs nuls pour les informations de prof

Est-ce que vous pouvez me dire c’est quoi la différence entre les 2 jointures (right, left) ? Et quand on les utilise au lieu d’utiliser la jointure normale ??

Merci d'avance