|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Nouveau membre du Club
![]() Date d'inscription: juillet 2009
Messages: 56
|
Bonjour à tous,
je coince sur un soucis SQL. Je travaille sur un site où les membres peuvent ajouter des photos. Leurs photos peuvent être placé dans des albums photos (mais pas obligatoirement) Je souhaiterai afficher le listing de leur album photo avec le nombre de photos qu'ils ont dans chaque album (ainsi que le nombre de photos qu'ils ont mais qui n'appartient pas à un album). exemple : Marc a 3 photos dans son album "familles", 2 photos dans son album "amis" et 7 photos qui n'appartienent pas à un album. Le soucis est que je n'arrive pas avec ma query (aussi bien en mettant LEFT join, INNER join ou RIGHT join) d'afficher le nombre de photos qui n'appartient pas à un album photos. (bon j'espère que j'ai été claire :-/) Code :
TABLE SQL MEMBRE : id pseudo ALBUM : id membreId (pour savoir à qui appartient l'album) nom PHOTOS : id albumId (pour savoir à quel album appartient la photo, si elle n'appartient à aucun album alors le champ vaut 0) membreId (pour savoir à qui appartient la photo) nom Code :
SELECT album.id, album.nom, COUNT(album.id) AS nbr FROM album INNER JOIN photos ON photos.albumId = album.id WHERE album.membreId = 1000 GROUP BY album.id 3 - famille - 7 5 - amis - 8 mais ce membre a 6 photos qui n'appartiennent à aucun album, mais je n'arrive pas à l'intégrer dans ma query. J'espère à noueau que je suis claire, merci à tous |
|
|
|
|
|
#2 |
|
Nouveau membre du Club
![]() Date d'inscription: janvier 2008
Messages: 79
|
Avec ta fonction d'agrégation, le group by me parait erroné. Essaie en faisant un GROUP BY sur le champ albumId...
Code :
SELECT album.id, album.nom, COUNT(album.id) AS nbr FROM album INNER JOIN photos ON photos.albumId = album.id WHERE album.membreId = 1000 GROUP BY photos.albumId Cordialement, Patouche |
|
|
|
|
|
#3 |
|
Nouveau membre du Club
![]() Date d'inscription: juillet 2009
Messages: 56
|
Malheureusement ça ne change pas.
En y réfléchissant, je pense que c'est parce que le record avec l'ID 0 n'est pas ajouté dans la table album :-/ je vais l'ajouter et retester |
|
|
|
|
|
#4 |
|
Nouveau membre du Club
![]() Date d'inscription: janvier 2008
Messages: 79
|
oui, en effet, il faut qu'il soit ajouter dans ta table.... mais c'est pas top intégriter...
Code :
SELECT album.id, album.nom, COUNT(album.id) AS nbr FROM album INNER JOIN photos ON photos.albumId = album.id OR photos.albumId = 0 WHERE album.membreId = 1000 GROUP BY photos.albumId |
|
|
|
|
|
![]() |
||
Problème de jointure
|
||
| Outils de la discussion | |
|
|