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:
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 -- 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 );
Voilà, disons que les données des parents de King sont inconnues, comment je fais pour retourner seulement le nomEspece de pere de 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,
J'ai essayé avec cette requête, mais sans succès :
J'ai de la difficulté à exprimer (codeEspece de I.pere).
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
Merci de m'aider !!!
Partager