2015-10-26 187 views
-1

统计数据这是数据库我的表结构集团通过与一个查询

enter image description here

我想在计数领域获得每个后喜欢数喜欢表并使用foreach循环显示每个帖子。

我的问题是

有没有一种方法,我可以用一个查询与JOINGROUP BYCOUNT表做到这一点,而不是创建多个查询。

回答

2
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 
+0

谢谢,但你能告诉我什么是p和l? –

+0

这些是表'posts'和'likes'的别名。你可以像这样定义:'...来自帖子p'或'...来自帖子作为p''。他们不需要在这种情况下,但使查询更短 –

+0

有没有办法,我可以联合这个查询与这个'SELECT * FROM posts',所以我可以得到所有发布数据和喜欢在一个'foreach'循环。或者我可以结合两个'foreach'循环。 –

-1

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。但我不会称之为功能。根据您选择的列进行分组或汇总是令人误解的。而且在其他数据库引擎中不起作用。特别是新手会觉得困惑。 –