SELECT news_table.update_date, t_comment.user_id, t_comment.news_id, count( * ) AS counter FROM t_comment, news_table
WHERE news_table.user_id = t_comment.user_id
AND news_table.news_id = t_comment.news_id
GROUP BY t_comment.user_id, t_comment.news_id
ORDER BY news_table.update_date DESC
通过以上查询,发表过留言的用户可以得到结果 至少是1 但是前提是发表过留言
所以,想请教一下,mysql有不有查询之后,不符合条件的结果也可以得出,并且计算结果为0
谢谢
[ 本帖最后由 chenken 于 2008-3-9 15:05 编辑 ]作者: kider 时间: 2008-3-10 15:45
你可以试试Left join /right join 等类型的SQL语句,应该能行...作者: chenken 时间: 2008-3-10 23:59 标题: 感谢 回帖 正在拜读本论坛翻译的书 写得很好 继续加油作者: chenken 时间: 2008-3-11 00:23 标题: 继续尝试 但是用LEFT JOIN 得出来的值和上面的值一样 有不有强制为0的写法呢 SELECT news_table.update_date, t_comment.user_id, t_comment.news_id, count( * ) AS counter FROM t_comment LEFT JOIN news_table
ON news_table.user_id = t_comment.user_id
where t_comment.user_id is not NULL
AND news_table.news_id = t_comment.news_id
GROUP BY t_comment.user_id, t_comment.news_id
ORDER BY news_table.update_date DESC