gpt4 book ai didi

mysql - SQL 重复结果

转载 作者:行者123 更新时间:2023-11-30 01:19:19 25 4
gpt4 key购买 nike

我有一个这样的查询

$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来计算帖子数量是否更好,或者将数字存储在数据库中并通过删除或添加来更改是否更好一个帖子?

最佳答案

您没有在第一个查询中选择“did”,因此您会获得未引用的帖子计数,而不知道它们所指的内容。

编辑:你没有具体说明你想要什么,你只是再次发布了同样的内容......不过我认为你需要的 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

如果您需要不同的东西,只需指定您想要的计数(对于每个讨论?对于每个用户?对于自定义用户?)

关于mysql - SQL 重复结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com