COUNT减少了结果?

时间:2014-03-02 18:04:30

标签: mysql

没有COUNT的查询会返回3条记录,只有1条记录。

SELECT  `blog_cate` . * , COUNT( blogi.blog_cate ) AS num
FROM (
`blog_cate`
)
JOIN  `blogi` ON  `blogi`.`blog_cate` =  `blog_cate`.`blogi_cate_url`

结果:

+----+------------------+----------------+-----+
| id | blogi_cate_title | blogi_cate_url | num |
+----+------------------+----------------+-----+
|  1 | Базы данных      | batabase       |   3 |
+----+------------------+----------------+-----+

相同的查询,但没有COUNT

SELECT  `blog_cate` . * 
FROM (
`blog_cate`
)
JOIN  `blogi` ON  `blogi`.`blog_cate` =  `blog_cate`.`blogi_cate_url`

这给我留下了3条记录:

+----+------------------+----------------+
| id | blogi_cate_title | blogi_cate_url |
+----+------------------+----------------+
|  1 | Базы данных      | batabase       |
|  1 | Базы данных      | batabase       |
|  3 | Разработка       | razrabotka     |
+----+------------------+----------------+

是否可以使用COUNT并获得正常结果?

P.S。表:

+----+------------+
| id | blog_cate  |
+----+------------+
|  1 | batabase   |
|  2 | batabase   |
|  3 | razrabotka |
+----+------------+

+----+------------------+----------------+
| id | blogi_cate_title | blogi_cate_url |
+----+------------------+----------------+
|  1 | Базы данных      | batabase       |
|  2 | PHP              | php            |
|  3 | Разработка       | razrabotka     |
+----+------------------+----------------+

2 个答案:

答案 0 :(得分:1)

COUNT()没有分组,将对所有记录进行分组并生成它们的计数。向选择中添加更多字段仅显示第一条记录的详细信息

答案 1 :(得分:1)

您可以构建一个查询来获取三行和一个查询以获取计数结果,并通过交叉连接将它们连接起来,将每个详细信息行与计数行组合。