MySQL的左连接:限制父表
我试图从数据库得到的结果,但结果限制在右MySQL的左连接:限制父表
SELECT posts.text, comments.text
FROM posts
LEFT JOIN comments ON comments.postid= post.id
Limit 0,5
以上将返回后的第一次为5条,如果有为五个评论。不过,我想返回所有评论,但在5篇帖子后停止查询。我如何去做这件事?
对不起我的问题是在一开始有点不清楚,因为我写的LEFT JOIN错误..
这是解决我的问题:
SELECT posts.text, comments.text
FROM (SELECT * FROM posts Limit 0,5)
LEFT JOIN comments ON comments.postid= post.id
另外一个问题。我只将posts.text指定为select列,但现在所有列都将返回,因为子查询中包含“*”?
如果这就是你想要的,使用子查询只得到5个父母。
SELECT p.text PostText,
c.text CommentText
FROM
(
SELECT id, text
FROM posts
LIMIT 5
) p
LEFT JOIN comments c
ON c.postId = p.id;
+1的很好的解决方案 – 2013-03-06 08:30:49
以我的经验MySQL中的子查询可能比预期的要慢得多 – cja 2013-03-06 08:51:53
@cja总是有例外。但你如何解决这个问题,如果不使用子查询? – 2013-03-06 08:53:18
我很困惑。一个帖子是否只有一个评论,或者应该是'post.id = comment.postId'? – 2013-03-06 08:43:39
对不起,是的你说得对,我已经修改了 – user1020317 2013-03-06 10:09:09