Jointure entre des tables
* Bonjour, *
J’ai créé une table « etudiant » =>
Code:
1 2 3 4 5
| create table etudiant (
IdEtudiant number(5),
nomEtudiant varchar(5),
idProf number(5)
) |
Et une table « Prof »
Code:
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:
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:
1 2 3
| Select *
From etudiant et , Prof p
Where Et.Idprof = P.Idprof |
=>Il me donne deux enregistrements
Et cette requete
Code:
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:
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