[PostgreSQK 12.12] SELECT pour avoir deux id Foreign Key de la même table après deux INNER JOIN
Bonjour,
On suppose que j'ai une DB Restaurant et trois tables Client, Serveur et Personne.
La table Personne possède une clé primaire id_personne, un nom.
Code:
1 2 3 4
|
Table Personne
id_personne PK
nom |
La table Client possède une clé primaire id_client mais aussi une clé étrangère id_personne qui référence la table Personne.
Code:
1 2 3 4 5
|
Table Client
id_client PK
id_personne FK (ref table personne)
nom |
Pareil pour Serveur, la table Serveur possède une clé primaire id_serveur et une clé étrangère id_personne qui référence Personne.
Code:
1 2 3 4 5
|
Table Serveur
id_serveur PK
id_personne FK (ref table Personne)
nom |
Entre Client et Personne, on a une relation One To Many de Client à Personne et entre Serveur et Personne, on a une relation One To Many également de Serveur à Personne.
Comment je peux faire pour faire une SELECT qui va contenir à la fois un id_personne pour le client et un id_personne et optionnellement un id_client et un id_serveur.
Si je fais quelque chose dans ce genre:
Code:
1 2 3 4 5
|
SELECT s.id_personne AS personne_serveur, c.id_personne AS personne_client
FROM Personne pe
INNER JOIN Cient c USING(id_personne)
INNER JOIN Serveur s USING(id_personne); |
Mais du coup, si je fais ça, ce n'est pas bon car j'ai une intersection. ça doit être basique mais je ne vois pas trop.
Pouvez vous me dire s'il faille faire un OUTER JOIN quelque chose comme ça.
Je vous remercie par avance,