Hello la commauté,
J'ai vraiment besoin de votre aide pour faire une requête, je vais essayer de vous expliquer ma situation
j'ai un referentiel de ville composé des 3 tables suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 -------------------- | REGION | -------------------- | ID | NOM | -------------------- | 1 | Ile de france | | 2 | Alsace | | 3 | Franche-Comté | --------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ----------------------------- | DEPARTEMENT | ----------------------------- | ID | NOM | ID_REGION | ----------------------------- | 1 | Val d oise | 1 | | 2 | Yvelines | 1 | | 3 | Bas-Rhin | 2 | | 4 | Haut-Rhin | 2 | | 5 | Doubs | 3 | | 6 | Jura | 3 | -----------------------------J'ai ensuite une table utilisateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ----------------------------- | VILLE | ----------------------------- | ID | NOM | ID_DPT | ----------------------------- | 1 | Enghien | 1 | | 2 | Montmorency | 1 | | 3 | Versailles | 2 | | 4 | Strasbourg | 3 | | 5 | Colmar | 4 | | 6 | Besançon | 5 | | 7 | Dournon | 6 | -----------------------------
Et enfin une table d'association (un utilisateur peux résider dans plusieurs villes)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 --------------- | UTILISATEUR | --------------- | ID | NOM | --------------- | 1 | Titi | | 2 | Toto | | 3 | Tata | | 4 | Tutu | | 5 | Tete | ---------------
Je voudrais afficher pour un utilisateur : la liste des regions + le nb de département + le nb de département où il réside.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ---------------------------- | RESIDE | ---------------------------- | ID_UTILISATEUR | ID_VILLE | ---------------------------- | 1 | 1 | | 1 | 2 | | 2 | 2 | | 2 | 6 | | 3 | 1 | | 3 | 3 | | 3 | 5 | ----------------------------
CAD :
pour titi (user 1) ça donnerait :
pour toto (user 2) ça donnerait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ------------------------------------------ | NOM | NB_DEPT | NB_DEPT_RESIDE | ------------------------------------------ | Ile de france | 2 | 1 | | Alsace | 2 | 0 | | Franche-Comté | 2 | 0 | ------------------------------------------
pour tata (user 3) ça donnerait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ------------------------------------------ | NOM | NB_DEPT | NB_DEPT_RESIDE | ------------------------------------------ | Ile de france | 2 | 1 | | Alsace | 2 | 0 | | Franche-Comté | 2 | 1 | ------------------------------------------
J'essaie de passer par un LEFT JOIN mais je bloque déjà pour le NB_DEPT (le SQL n'est pas du tout ma spécialité vous l'aurez compris)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ------------------------------------------ | NOM | NB_DEPT | NB_DEPT_RESIDE | ------------------------------------------ | Ile de france | 2 | 2 | | Alsace | 2 | 1 | | Franche-Comté | 2 | 0 | ------------------------------------------
J'espère que j'ai suffisament bien expliqué et qu'une âme charitable voudra bien m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT REGION.NOM as NOM, count(DEPARTEMENT.ID) as NB_DEPT FROM REGION LEFT JOIN DEPARTEMENT ON DEPARTEMENT.ID = DEPARTEMENT.ID_REGION
Merci
PoichOU
Partager