En version qui marche mieux :
SELECT C.post_id, DATE( C.comment_dt ) AS date, COUNT( C.comment_id ) as
nb_comment, ifnull(PS.nb_view,0) as nb_view
FROM dc_comment C
LEFT OUTER JOIN dc_postsStats PS on PS.post_id=C.post_id and
DATE(C.comment_dt)=DATE(PS.date)
GROUP by C.post_id,DATE(C.comment_dt)

UNION

SELECT PS.post_id, DATE( PS.date ) AS date, COUNT( C.comment_id ) as
nb_comment, PS.nb_view
FROM dc_comment C
RIGHT OUTER JOIN dc_postsStats PS on PS.post_id=C.post_id and
DATE(C.comment_dt)=DATE(PS.date)
GROUP by PS.post_id,DATE(PS.date)

(Le UNION est nécessaire ici, mysql ne connait pas les full outer join)

--
Bruno




Le 13 novembre 2013 13:44, Bruno <[email protected]> a écrit :

> essaye cela :
>
> SELECT C.post_id, DATE( C.comment_dt ) AS date, COUNT( C.comment_id ) as
> nb_comment, ifnull(PS.nb_view,0), DATE(PS.date)
> FROM dc_comment C
> LEFT OUTER JOIN dc_postsStats PS on PS.post_id=C.post_id and
> DATE(C.comment_dt)=DATE(PS.date)
> GROUP by C.post_id,DATE(C.comment_dt)
> UNION
> SELECT PS.post_id, DATE( PS.date ) AS date, COUNT( C.comment_id ) as
> nb_comment, PS.nb_view, DATE(PS.date)
> FROM dc_comment C
> RIGHT OUTER JOIN dc_postsStats PS on PS.post_id=C.post_id and
> DATE(C.comment_dt)=DATE(PS.date)
> GROUP by C.post_id,DATE(C.comment_dt)
>
>
>
>
> Le 13 novembre 2013 12:39, Christopher Crouzet <
> [email protected]> a écrit :
>
> http://sqlfiddle.com/#!2/431ab/14
>> Merci Laurent, malheureusement en modifiant legerement la syntaxe comme
>> ci-dessus, j'obtiens un resultat similaire a la methode de Bruno : la
>> requete montre seulement les resultats ayant a la fois un nb de views et
>> un
>> nb de comments.
>>
>>
>>
>> 2013/11/13 Laurent Wandrebeck <[email protected]>
>>
>> >
>> > 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.
>> >>
>> >
>> > un truc du style (100% non testé ^^) :
>> > select
>> dc_postsStats.postid,dc_postsStats.date,dc_postsStats.nb_view,dc_comment.nb_comment
>> > from dc_postStats,dc_comment where
>> dc_postsStats.postid=dc_comment.postid
>> > ?
>> >
>> >
>> > --
>> > Dev mailing list - [email protected] - http://ml.dotclear.org/
>> > listinfo/dev
>> >
>> --
>> Dev mailing list - [email protected] -
>> http://ml.dotclear.org/listinfo/dev
>>
>
>
-- 
Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev

Répondre à