Mysql 选择仅显示1个结果和错误结果的计数
我想搜索表1,并计算在“经验”列中哪个编号最多5 表1Mysql 选择仅显示1个结果和错误结果的计数,mysql,Mysql,我想搜索表1,并计算在“经验”列中哪个编号最多5 表1 +-------------+------------+ | number_id | experience | +-------------+------------+ | 20 | 5 | | 20 | 5 | | 19 | 1 | | 18 | 2 | | 15 | 3
+-------------+------------+
| number_id | experience |
+-------------+------------+
| 20 | 5 |
| 20 | 5 |
| 19 | 1 |
| 18 | 2 |
| 15 | 3 |
| 13 | 1 |
| 10 | 5 |
+-------------+------------+
所以在这种情况下,它将是number_id=20
然后在表2中进行内部联接,并映射与表1中的编号\u id匹配的编号
表2
+-------------+------------+
| id | number |
+-------------+------------+
| 20 | 000000000 |
| 29 | 012345678 |
| 19 | 123456789 |
| 18 | 223456789 |
| 15 | 345678910 |
| 13 | 123457898 |
| 10 | 545678910 |
+-------------+------------+
因此,结果将是:
000000000 (2 results of 5)
545678910 (1 result of 5)
到目前为止,我已经:
SELECT number, experience, number_id, COUNT(*) AS SUM FROM TABLE1
INNER JOIN TABLE2 ON TABLE1.number_id = TABLE2.id
WHERE experience = '5' order by SUM LIMIT 10
但它只是回来了
545678910
我如何才能让它返回结果,并按经验列中5个实例的数量顺序返回结果
谢谢此查询将为您提供所需的结果。子查询获取所有经验值为5的数字\ id。sumperience=5之所以有效,是因为MySQL使用1表示true,0表示false。然后子查询的结果被连接到表2,以给出数字字段。最后,结果按经验数=5排序: 输出:
number num_fives
000000000 2
545678910 1
此查询将为您提供所需的结果。子查询获取所有经验值为5的数字\ id。sumperience=5之所以有效,是因为MySQL使用1表示true,0表示false。然后子查询的结果被连接到表2,以给出数字字段。最后,结果按经验数=5排序: 输出:
number num_fives
000000000 2
545678910 1
添加GROUPBY子句:
SELECT number, experience, number_id, COUNT(*) AS SUM
FROM TABLE1
JOIN TABLE2 ON TABLE1.number_id = TABLE2.id
WHERE experience = '5'
GROUP BY 1, 2, 3 -- <<< Added this clause
ORDER BY SUM
LIMIT 10
添加GROUPBY子句:
SELECT number, experience, number_id, COUNT(*) AS SUM
FROM TABLE1
JOIN TABLE2 ON TABLE1.number_id = TABLE2.id
WHERE experience = '5'
GROUP BY 1, 2, 3 -- <<< Added this clause
ORDER BY SUM
LIMIT 10
您应该使用mysql标记您的问题,以及/而不是mysqli,它们将被更多的人看到。我已经为你做了这个问题。你应该用mysql标记你的问题,以及/而不是mysqli,它们会被更多的人看到。我已经为你做了这个问题。