【发布时间】:2021-03-14 00:23:40
【问题描述】:
我正在尝试编写一个查询
- 在表格 Posts 和 Comments 中搜索字符串
- 如果任一表上存在匹配项,则返回匹配的帖子及其总评论数。
我有:
SELECT Posts.id, Comments.id, Count(DISTINCT Comments.id)
FROM Posts
LEFT JOIN Comments ON Comments.postid = Posts.id
WHERE ( Posts.text LIKE '%test%'
OR ( Comments.text LIKE '%test%'
AND Comments.deleted = false ) )
AND Posts.approved = true
AND Posts.deleted = false
GROUP BY Posts.id
这个查询的问题是 where 过滤了我的 Comments.id 计数,因此它不是返回帖子中的 cmets 总数,而是返回匹配“test”的 cmets 数量。 如何在单个查询中实现我想要的?
【问题讨论】:
-
请描述逻辑。您的查询比您描述的要多。
-
发布一个示例数据,其中包含您获得的当前输出和您的预期输出。