OVH Cloud OVH Cloud

Création de requète

2 réponses
Avatar
Emmanuel Petit
Question de débutant.
J'essaie de créer une requète, mais mes lacunes en SQL me bloquent. Je
vous appelle donc au secours.

Le problème

Table Entete
- EnteteID (PK)
- NomEntete

Table Rang
- RangID (PK)
- NomRang

Table Details
- DetailsID (PK)
- EnteteID (FK)
- RangID (FK)
- NomDetails

Cette dernière table peut contenir de 0 à n lignes pour chaque entetes
et il y a seulement 4 lignes dans la table Rang.

Un SELECT * FROM Entete donne
EnteteID NomEntete
-------- ---------
1 Pierre
2 Jean
3 Marc

Un SELECT * FROM Rang donne
RangID NomRang
------ -------
1 Rang 1
2 Rang 2
3 Rang 3
4 Rang 4

Un SELECT * FROM Details donne
DetailsID EnteteID RangID NomDetails
--------- -------- ------ ----------
1 1 1 Paris
2 1 2 Sete
3 1 4 Lyon
4 3 2 Lafare
4 3 3 Orange


Ma procedure devrait produire le résultat suivant:

EnteteID NomEntete Details1 Details2 Details3 Details4
-------- --------- -------- -------- -------- --------
1 Pierre Paris Sete Null Lyon
2 Jean Null Null Null Null
3 Marc Null Lafare Orange Null

Le seul moyen que j'ai trouvé, est de créer une Table temporaire, et de
la remplir avec plusieurs select.
Y a-t-il un autre moyen plus rapide, qui m'eviterais de passer par une
table temporaire?
Merci d'avance

2 réponses

Avatar
Guillaume Davion
left outer join

select *
from entete left outer join details on details.enteteID entete.enteteID
left outer join rang on details.rangID = rang.ranID
Avatar
Emmanuel Petit
Merci pour votre aide...

Guillaume Davion a écrit :
left outer join

select *
from entete left outer join details on details.enteteID > entete.enteteID
left outer join rang on details.rangID = rang.ranID