Bonjour,
Je vous expose un petit problème dans un LEFT JOIN que je n'arrive pas à résoudre.
J'ai deux tables : PERSONNE et ENFANT, l'id de la personne migre vers l'enfant.
Je veux sélectionner le nombre d'allocation familiale de chaque personne, que ce soit avec ou sans enfants, avec cette requête :
ça marche très bien, j'ai le SUM pour les personnes avec enfant est un NULL pour les personnes sans enfants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT personne.id, SUM(enfant.alloc) FROM PERSONNE personne LEFT JOIN ENFANT enfant ON personne.id=enfant.id_personne WHERE personne.id IN(1,2,3,4) GROUP BY personne.id;
Maintenant je veux ajouter une clause dans la table ENFANT, l'ajout de cette clause fait disparaître la personne sans enfant (id_personne=3), voici la requête avec le clause ajoutée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ID | SUM 1 | 250 2 | 369 3 | NULL 4 | 15
le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT personne.id, SUM(enfant.alloc) FROM PERSONNE personne LEFT JOIN ENFANT enfant ON personne.id=enfant.id_personne WHERE personne.id IN(1,2,3,4) AND enfant.age = 10 GROUP BY personne.id;
Comment pourrais-je conserver la personne 3 avec la valeur NULL pour la somme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ID | SUM 1 | 15 2 | 19 4 | 1
Merci pour votre aide.
Partager