【发布时间】:2016-06-24 07:41:29
【问题描述】:
我目前正在尝试编写一个通用查询,它返回一个表和另一个连接表的内容以及第三个表的结果行数。
现在我的描述可能看起来很抽象,所以我将尝试将其可视化
表格:
posts
| ID | title | description | creator_id |
1 Title1 Descr1 1
2 Title2 Descr2 1
users
| ID | name | avatar |
1 User1 PATH
interactions
| ID | type | target_id | identifier |
1 view 1 IP
2 view 1 IP
现在我正在寻找的是这样的输出:
| ID | title | description | name | avatar | view_count |
1 Title1 Descr1 User1 PATH 2
2 Title2 Descr2 User1 PATH 0
我当前的查询如下所示:
SELECT
posts.id, posts.title, posts.description,
users.name, users.avatar,
COUNT(interactions.id) AS view_count
FROM
posts
LEFT JOIN
users
ON
posts.creator_id = users.id
LEFT JOIN
interactions
ON
posts.id = interactions.target_id
但只打印出具有这样交互的帖子结果:
| ID | title | description | name | avatar | view_count |
1 Title1 Descr1 User1 PATH 2
我需要如何更改查询,以便同时获得碰巧还没有任何交互的其他行?
感谢您的帮助!
【问题讨论】:
-
sqlfiddle.com你能提供这里的示例数据吗?
-
@10086 User2 输入错误。
-
@noa-dev,刚刚在您的查询中添加了这个“group by posts.id”,它就会完美地工作。