我想从3个表(消息,user_comment_messages和user_like_messages)作出SQL查询,我需要得到每个消息与喜欢和评论的总数,其实我'米试着这个:SQL查询计数与两个连接
SELECT m.id, COUNT(c.id) AS t_comment, COUNT(l.id) AS t_like
FROM messages m
JOIN user_comment_messages c ON c.message_id = m.id
JOIN user_like_messages l ON l.message_id = m.id
GROUP BY m.id;
当我执行查询时,我在两列中得到相同的值,是不正确的。所以我试图用一个子查询:
SELECT m.id,
(SELECT COUNT(*) FROM user_comment_messages c WHERE m.id = c.message_id) AS t_like,
(SELECT COUNT(*) FROM user_like_messages l WHERE m.id = l.message_id) AS t_comment
FROM messages m
ORDER BY m.id
这个效果很好,但在我的开发环境,我不能使用子查询,才加入。是否有另一种方法来实现这一目标?
谢谢!
你需要一个外部联接的消息/喜欢吗? – Drumbeg
@Drumbeg,是的,如果任何表没有行,那么应该留下连接。 –
@Drumbeg,???我根据你的评论编辑了我的答案,并提出了你的评论...............计数将忽略空值 –