繁体   English   中英

如何正确编写子查询以获取每个帖子的评论数?

[英]How do I correctly write a sub-query to get count of comments for each post?

我正在尝试返回一个sqlite3查询,该查询将允许我循环浏览社交媒体帖子并显示帖子和用户详细信息以及每个帖子的评论数。

我不知道如何编写一个SQL查询来获取帖子的评论数。

这是我在ERD中的数据库方案:

在此处输入图片说明

这是我的查询:

SELECT u.name, u.icon, p.date, p.title, p.message,
       (SELECT comment.postId, COUNT(comment.Id) 
        FROM comment
        WHERE comment.postID = p.Id) as commentno
FROM Post p, User u
WHERE p.userID = u.Id

尝试运行此命令时看到的内容:

错误:子选择返回2列-预期为1

我想看的是:

Michael Scott, Michael.png, 2019-08-27, "Blog title", "Blog message", 7

请参阅上面的评论。 我认为您打算这样做:

    SELECT u.name, u.icon, p.date, p.title, p.message,
       c.postId, COUNT(c.Id) as commentno             
        FROM Post p LEFT JOIN  User u ON p.userID = u.Id
        LEFT JOIN Comment c on p.ID = c.PostID
        GROUP BY  u.name, u.icon, p.date, p.title, p.message, c.postId

UPDATE如前所述,我的原始答案有相同的错误(因为我只是快速移动了别名。在这里,我将查询重新格式化为使用JOINs 。我假设您的Post表具有注释ID,但是您可以找出适当的列为您的JOIN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM