java mysql 查询内容以及该内容下的评论,评论限制5条
需求是查询评论
article表id, content
comment表
id,pid,comment
我需要查询文章列表,每个文章下面有5条评论
数据结构{
id,//文章id
content,//文章内容
commentList:[
{commentid,comment},
{commentid,comment},
{commentid,comment},
]
}
用left join 查 ,查出来的是文章下所有的评论。没法限制条数。
请大佬帮我看看呢
回答:
- 表数据
article表
comment表 - 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
结果
核心是这句: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