Bonjour,
Voila je suis bloqué sur un petit problème tout bébéte, mais ne n'arrive pas à m'en sortir malgrès avoir écumé les forums et sites sur SQL.
Pour info je fais mes requêtes sous SQL Server.
Je joue sur 4 petites tables:
FIGURE
ID|NAME
1 |FIGURE1
2 |FIGURE2
3 |FIGURE3
4 |FIGURE4
5 |FIGURE5
CATEGORY_TYPE
ID|TYPE
1 |COULEUR
2 |FORME
CATEGORY
ID|VALUE|CATEGORY_TYPE_ID
1 |ROND |2
2 |CARRE|2
3 |VERT |1
4 |ROUGE|1
5 |JAUNE |1
ou CATEGORY_TYPE_ID est une FK vers CATEGORY_TYPE/ID
FORME_COLLECTION
ID_CATEGORY|ID_FIGURE
1|1
3|1
4|2
2|3
5|3
3|4
1|5
4|5
ou ID_CATEGORY est une FK vers CATEGORY/ID
et ID_FIGURE est une FK vers FIGURE/ID
En sachant qu'une figure ne couvre pas forcement toute les category_type, c'est à dire comme les figures 2 et 4 qui n'ont pas d'affectation à une forme dans FORME_COLLECTION.
Mon besoin étant de récuperer TOUTE la liste des figures, avec la forme associé, même si la figure n'en posséde pas.
En gros j'aimerais récupérer:
FIGNAME|FORMNAME
FIGURE1|ROND
FIGURE2|NULL
FIGURE3|CARRE
FIGURE4|NULL
FIGURE5|ROND
Seulement je n'arrive pas à effectuer une jointure externe qui me ramène tout de même les figures ne possédant pas de forme.
Voici ma requête:
Cette requête me retourne uniquement les figure possédant une forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT distinct T1.NAME AS FIGNAME, T13.VALUE AS FORMNAME FROM FIGURE T1 LEFT OUTER JOIN FORME_COLLECTION T2 ON T1.ID = T2.ID_FIGURE, CATEGORY T3, CATEGORY_TYPE T4 WHERE T2.ID_CATEGORY = T3.ID AND T3.CATEGORY_TYPE_ID = T4.ID AND T4.TYPE = 'FORME'
FIGNAME|FORMNAME
FIGURE1|ROND
FIGURE3|CARRE
FIGURE5|ROND
Pourriez-vous m'aider? J'ai trituré ma jointure dans tous les sens mais rien n'y fait.
Merci beaucoup.
Cordialement,
Partager