集团通过与一个查询
问题描述:
统计数据这是数据库我的表结构集团通过与一个查询
我想在计数后领域获得每个后喜欢数喜欢表并使用foreach
循环显示每个帖子。
我的问题是
有没有一种方法,我可以用一个查询与JOIN
,GROUP BY
和COUNT
表做到这一点,而不是创建多个查询。
答
select p.id, p.title, p.content, count(l.id) as likes_count
from posts p
left join likes l on l.post = p.id
group by p.id, p.title, p.content
答
http://sqlfiddle.com/#!9/bca8ee/1
SELECT p.*, COUNT(l.id)
FROM posts p
LEFT JOIN likes l
ON l.post = p.id
GROUP BY p.id
+0
是的,这部作品在MySQL。但我不会称之为功能。根据您选择的列进行分组或汇总是令人误解的。而且在其他数据库引擎中不起作用。特别是新手会觉得困惑。 –
谢谢,但你能告诉我什么是p和l? –
这些是表'posts'和'likes'的别名。你可以像这样定义:'...来自帖子p'或'...来自帖子作为p''。他们不需要在这种情况下,但使查询更短 –
有没有办法,我可以联合这个查询与这个'SELECT * FROM posts',所以我可以得到所有发布数据和喜欢在一个'foreach'循环。或者我可以结合两个'foreach'循环。 –