java mysql 查询内容以及该内容下的评论,评论限制5条

需求是查询评论

article表

id, content

comment表

id,pid,comment

我需要查询文章列表,每个文章下面有5条评论

数据结构

{

id,//文章id

content,//文章内容

commentList:[

{commentid,comment},

{commentid,comment},

{commentid,comment},

]

}

用left join 查 ,查出来的是文章下所有的评论。没法限制条数。
请大佬帮我看看呢


回答:

  1. 表数据
    article表

    comment表
  2. sql(最早3条评论)
SELECT 

tmp1.id, tmp1.content, tmp.comment

FROM

(SELECT

a.pid, a.comment

FROM

`comment` a

WHERE

3 > (SELECT COUNT(id) FROM `comment` b WHERE b.pid = a.pid AND a.id > b.id)

ORDER BY

a.id DESC) tmp

JOIN article tmp1 ON tmp.pid = tmp1.id

  1. 结果

    核心是这句:

      3 > (SELECT COUNT(id) FROM `comment` b WHERE b.pid = a.pid AND a.id > b.id)

ps:这里还提供最新3条评论sql,根据业务可以自行对比调整

SELECT 

tmp1.id, tmp1.content, tmp.comment

FROM

(SELECT

a.pid, a.comment

FROM

`comment` a

WHERE

3 > (SELECT COUNT(id) FROM `comment` b WHERE b.pid = a.pid AND a.id < b.id)

ORDER BY

a.id) tmp

JOIN article tmp1 ON tmp.pid = tmp1.id


回答:

既然能left join 的表信息,要不试着嵌套子查询,先把评论数的数据子查询limit出来,不知道可否行。

以上是 java mysql 查询内容以及该内容下的评论,评论限制5条 的全部内容, 来源链接: utcz.com/p/944214.html

回到顶部