Php Mysql左联接:限制父表

Php Mysql左联接:限制父表,php,mysql,sql,join,Php,Mysql,Sql,Join,我正在尝试从DB获取结果,但将结果限制在右侧 SELECT posts.text, comments.text FROM posts LEFT JOIN comments ON comments.postid= post.id Limit 0,5 如果有五条评论,上面将返回第一篇文章的五条评论。但是我想返回所有评论,但是在5篇文章之后停止查询。我该怎么办 对不起,我的问题一开始有点不清楚,因为我把左连接写错了 这就是我问题的解决方案: SELECT posts.text, comme

我正在尝试从DB获取结果,但将结果限制在右侧

SELECT posts.text, comments.text 
FROM posts 
LEFT JOIN comments ON comments.postid= post.id 
Limit 0,5 
如果有五条评论,上面将返回第一篇文章的五条评论。但是我想返回所有评论,但是在5篇文章之后停止查询。我该怎么办


对不起,我的问题一开始有点不清楚,因为我把左连接写错了

这就是我问题的解决方案:

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;

我很困惑。一篇文章只能有一条评论,还是应该是
post.id=comment.postId
?对不起,是的,你是对的,根据我的经验,MySQL中的子查询可能比expected@cja总有例外。但如果不使用子查询,您如何解决这个问题?@cja它不是一个相关子查询,因此只执行一次。性能应该是不错的,尽管我怀疑这个问题对于实际的表关系有点混淆。如果您有一个
ORDER BY
,这将不起作用。它将仅在子查询的结果中排序。如果您想按最新评论订购。