MYSQL从左到右的并集和组
我有一个论坛,有两个表格,论坛帖子和论坛回复。我需要获得最活跃的用户。这是我最近试过的MYSQL从左到右的并集和组,mysql,union,Mysql,Union,我有一个论坛,有两个表格,论坛帖子和论坛回复。我需要获得最活跃的用户。这是我最近试过的 SELECT forum_reply.added_by, forum_posts.added_by FROM forum_reply LEFT JOIN forum_posts ON forum_posts.added_by = forum_reply.added_by UNION SELECT
SELECT forum_reply.added_by, forum_posts.added_by FROM forum_reply LEFT JOIN forum_posts ON forum_posts.added_by = forum_reply.added_by
UNION
SELECT forum_posts.added_by, forum_reply.added_by FROM forum_posts RIGHT JOIN forum_reply ON forum_reply.added_by = forum_posts.added_by
WHERE forum_reply.date_added < '".$now."' AND forum_reply.date_added > '".$past24h."' AND forum_posts.date_added < '".$now."' AND forum_posts.date_added > '".$past24h."'
GROUP BY forum_reply.added_by, forum_posts.added_by ORDER BY COUNT(*) DESC LIMIT 5");
问题是这个查询只给出一个结果,而不是5个。结果肯定是不真实的,因为该查询提供给我的用户在过去24小时内没有发布任何内容。考虑提供适当的DDL和/或SQLFIDLE以及所需的结果集,除了左/右连接,联合中的第一个和第二个SELECT语句看起来是相同的。你为什么要这么做?我真的不愿意这么做。然而,在我修复它之后,结果是一样的