我有一个像这样的查询
$query =$this->db->query('SELECT COUNT(did) AS TheCount
FROM posts
GROUP BY did');
return $query->result();
该查询与此查询相关
$this->db->group_by('did')
->from('posts')
->join('users', 'users.username = posts.username');
$query = $this->db->get();
return $query->result();
我遇到的问题是HTML完全显示第二个查询,但如果有任何意义,则复制第一个查询中的第一个查询...
有点像这样
a post | TheCount number, DifferentCount number
another post | TheCount number, DifferentCount number
我希望有足够的相关信息,是的,我已经尝试在第一次查询时使用DISTINCT
。
并且对于更多信息,每个帖子被分组为讨论,讨论具有自己的id
因此did
,并且每个帖子都有自己的pid
。
我希望它看起来像这样
a post | TheCount number
another post | DifferentCount number
并且关于性能方面,使用COUNT
计算帖子数量会更好吗,或者将数字存储在数据库中会更好,因为它会通过删除或添加帖子来更改?
答案 0 :(得分:0)
您没有在第一个查询中选择“已执行”,因此您会在不知道帖子引用的情况下获得未引用的帖子数量。
编辑: 你没有指定你想要的东西,你刚刚发布了同样的东西...... 但是我觉得你需要的SQL是这样的:
SELECT did, username, COUNT(*) AS TheCount
FROM posts
JOIN users ON users.username = posts.username
GROUP BY did
通过此查询,您可以在每次讨论中获得在该讨论中分离的每个用户的帖子数。 类似的东西:
did | Username | TheCount
1 | John | 2 (posts)
1 | Andrew | 1 (post)
2 | Michael | 5
2 | John | 4
...
如果你专注于特定的用户名,你可以这样简化:
SELECT did, COUNT(*) AS TheCount
FROM posts
WHERE posts.username = 'John'
GROUP BY did
结果:
did | Username | TheCount
1 | John | 2 (posts)
2 | John | 4
如果您需要不同的东西,只需指定您想要的数量(针对每个用户?针对自定义用户?)
答案 1 :(得分:0)
我终于做到了!永远地把我带走了,但是我的答案有点来自@Eldono,但我所做的只是把他的答案放在我的第一个查询中,然后完全摆脱了第二个查询,当然我改变了他的SELECT did
到SELECT *
。