[英]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.