簡體   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