J'ai deux tables :
la table Cartes qui contient un id_personne
et la table personne qui contient entre autre cet id_personne. La relation peut donc ce faire par la.
Mon souci est que la table personne contient également un idParent qui peut-être null ou non.
Il faudrait que quand cet idParent n'est pas null, ce soit lui qui soit pris en compte pour la relation.
J'ai donc fait qq chose qui ressemble à ceci :
Je ne sais pas si cette solution est la meilleure, qu'en pensez vous ? (J'avais pensé passer par une sous requête avec un Case ou un If, mais c'était assez lent malgré les index).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT p.Nom,p.Prenom,c.IdCarte FROM CARTES c RIGHT OUTER JOIN Personnes p ON c.IdPersonne = p.id_Personne WHERE p.IdParent IS NULL UNION SELECT p.Nom,p.Prenom,c.IdCarte FROM CARTES c RIGHT OUTER JOIN Personnes p ON c.IdPersonne = p.idParent WHERE p.IdParent IS NOT NULL
Partager