You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询指定帖子的评论及对应评论者用户名?

解决通过帖子ID获取评论及评论者用户名的SQL问题

嘿,我明白你的问题啦!你之前的查询里,错误地把users表和posts表做了关联,但实际上评论的发布者信息存在comments.user_id里,得把comments表和users表关联起来才能拿到评论者的用户名。

正确的SQL查询语句

如果你只需要获取目标帖子的所有评论内容,以及对应的评论者用户名,最简单高效的写法是:

SELECT 
  c.body AS comment_body,
  u.name AS commenter_name
FROM comments c
INNER JOIN users u ON c.user_id = u.id
WHERE c.post_id = ($1);

若需同时获取帖子本身的内容

如果你的需求还包含展示帖子正文,那可以保留和posts表的关联,调整后的语句如下:

SELECT 
  p.body AS post_body,
  c.body AS comment_body,
  u.name AS commenter_name
FROM posts p
INNER JOIN comments c ON p.id = c.post_id
INNER JOIN users u ON c.user_id = u.id
WHERE p.id = ($1);

原查询失效的原因

你之前的查询把users和posts通过u.id = p.user_id关联,这其实拿到的是帖子发布者的信息,而非评论发布者的。我们需要的是将users和comments通过c.user_id = u.id关联,这样才能匹配到每条评论对应的发布者用户名。

内容的提问来源于stack exchange,提问作者Sallam Mhamad El-Tanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:26:45