Merci Bruno !

J'etais arrive a un resultat similaire mais ce n'est que la moitie du
chemin. En faisant un INNER JOIN, le resultat montre seulement les lignes
qui ont a la fois des views et des comments, au lieu de toutes les montrer
et mettant des 0 la ou c'est vide.
J'ai cree un SQL Fiddle pour que ca soit plus facile :
http://sqlfiddle.com/#!2/4c1f44/1

http://www.sitepoint.com/understanding-sql-joins-mysql-database/
Je m'etais servi de cet article pour faire un OUTER JOIN mais ca ne marche
pas dans mon cas.
http://sqlfiddle.com/#!2/4c1f44/2

Le LEFT JOIN me cree des NULL dans la colonne `nb_view`, ce qui est bien
(quoique ca serait mieux avec des 0 pour pouvoir faire des calculs), mais
par contre le RIGHT JOIN lui cree des NULL dans les colonnes `post_id` et
`date`, alors que je m'attendais a ce qu'il en cree dans `nb_comment`.



2013/11/13 Bruno <[email protected]>

> Le 13 novembre 2013 11:43, Christopher Crouzet <
> [email protected]> a écrit :
>
> > J'ai cru comprendre qu'avec UNION il fallait que les colonnes des 2
> tables
> > correspondent ? Ce qui n'est pas mon cas puisque j'essaye d'ajouter le
> > nombre de views d'une table a cote du nombre de comments d'une autre
> table.
> >
>
> Au temps pour moi, j'ai mal "lu" ton mail html initial :)
>
> c'est bien un join qu'il te faut. Un truc du genre :
>
> SELECT C.post_id, DATE( C.comment_dt ) AS date, COUNT( C.comment_id ) as
> nb_comment, PS.views
> FROM dc_comment C
> INNER JOIN dc_poststats PS on PS.post_id=C.post_id and PS.date=C.comment_dt
> GROUP BY post_id, DATE( date )
>
> ?
> --
> Dev mailing list - [email protected] -
> http://ml.dotclear.org/listinfo/dev
>
-- 
Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev

Répondre à