mysql子查询限制也限制了父查询
我想检索所有记录从论坛上的1个最新的回复线程。 问题是限制也会影响父查询,导致只返回1个线程 我们将非常感谢您的帮助,提前感谢您mysql子查询限制也限制了父查询,mysql,Mysql,我想检索所有记录从论坛上的1个最新的回复线程。 问题是限制也会影响父查询,导致只返回1个线程 我们将非常感谢您的帮助,提前感谢您 例如,您可能需要对子查询进行分组 此外,内部联接只会产生一个联接条件在两个表中都匹配的记录:也就是说,没有回复的帖子将被排除在外 如果希望保留一个表中的记录,即使连接条件不匹配,也需要外部连接;在这种情况下,左外部联接(因此联接的左操作数中的记录始终包含在结果集中) 有关更多信息,请参阅 因此: SELECT * FROM forum_posts AS post
SELECT * FROM forum_posts AS post
INNER JOIN( SELECT parent AS rparent, author AS rauthor, MAX(created_at( AS rdate FROM forum_replies) AS reply
ON post.id = reply.rparent
或者,在联接后执行分组:
SELECT * FROM forum_posts AS post LEFT JOIN (
SELECT parent AS rparent
, author AS rauthor
, MAX(created_at) AS rdate
FROM forum_replies
GROUP BY parent
) AS reply ON post.id = reply.rparent
在sqlfriddle上发布show create table和example数据,并在这里发布链接。我看不出其中有任何限制。您是复制了这段代码还是重新键入了它?您有一个输入错误-MAX应该在末尾有一个左括号。如果这里的问题是没有回复的帖子被不希望地从您的结果集中排除,那么您应该将
内部连接
更改为左连接
。有关更多信息,请参阅。非常棒的eggyal,工作非常完美!将其作为解决方案发布,我会将其标记为已解决。
SELECT post.*
, reply.parent AS rparent
, reply.author AS rauthor
, MAX(reply.created_at) AS rdate
FROM forum_posts AS post
LEFT JOIN forum_replies AS reply ON reply.parent = post.id
GROUP BY post.id