Bonjour,

J'essais depuis quelques jours d' écrire une requête qui a pour but de trouver le nom de l'espèce d'un père (ou d'une mère) d'un individu bien identifié.
IL s'agit d'une relation réflexive, puisque le père et la mère sont aussi des individus.

Voici les tables en question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--  la table Espece
 
CREATE TABLE Espece
( 
  codeEspece 		VARCHAR2(20), 
  nomEspece		VARCHAR2(20) NOT NULL, 
 
  CONSTRAINTS Espece_pk PRIMARY KEY (codeEspece),
  UNIQUE(nomEspece),	
);
 
-- table Individu
 
CREATE TABLE Individu
( 
  codeIndividu		VARCHAR2(10), 
  nomIndividu 		VARCHAR2(20) NOT NULL, 
  codeEspece		VARCHAR2(10), 
  pere			VARCHAR2(20), 
  mere			VARCHAR2(20),
 
  CONSTRAINTS Individu_pk PRIMARY KEY (codeIndividu),
  CONSTRAINTS Individu_fk FOREIGN KEY (codeEspece) REFERENCES Espece (codeEspece) ON DELETE CASCADE,
  CONSTRAINTS Individu_pere FOREIGN KEY (pere) REFERENCES Individu (codeIndividu),  -- un père est un individu
  CONSTRAINTS Individu_mere FOREIGN KEY (mere) REFERENCES Individu (codeIndividu) -- une mère est un individu
);
Par exemple , pour un individu qui s'appelle King :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Ses données dans la table Individu:
 
  codeIndividu		ABC123 
  nomIndividu 		King
  codeEspece		Chien005
  pere			ABC004 
  mere			ABC027
 
 
Et les parents de king: 
 
- son pere :
 
  codeIndividu		ABC004
  nomIndividu 		Loulou
  codeEspece		Chien005
  pere			null
  mere			null
 
 
- sa mère :
 
  codeIndividu		ABC027
  nomIndividu 		Mimi
  codeEspece		Chien005
  pere			null
  mere			null
 
 
Les 3 individus ont les mêmes données dans la table Espece:
 
  codeEspece 		Chien005, 
  nomEspece		Berger_allemand,
Voilà, disons que les données des parents de King sont inconnues, comment je fais pour retourner seulement le nomEspece de pere de king ?

J'ai essayé avec cette requête, mais sans succès :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Select nomEspece
From Espece E, Individu I 
Where I.pere = I.codeIndividu  AND  (codeEspece de I.pere) = E.codeEspece
J'ai de la difficulté à exprimer (codeEspece de I.pere).


Merci de m'aider !!!