Php 如何使用mysql获取数据计数
我有两个表数据和用户。我需要得到数据计数->值,并只显示最大计数和用户->名称 例如,用户id 2:计数为3 我试着问了一些问题,但都错了Php 如何使用mysql获取数据计数,php,mysql,Php,Mysql,我有两个表数据和用户。我需要得到数据计数->值,并只显示最大计数和用户->名称 例如,用户id 2:计数为3 我试着问了一些问题,但都错了 SELECT data.value, user.name FROM data INNER JOIN user ON data.value = user.id WHERE data.field = 'user_id' 数据 id order_id field value (id of user table) 1 1
SELECT data.value, user.name
FROM data
INNER JOIN user
ON data.value = user.id
WHERE data.field = 'user_id'
数据
id order_id field value (id of user table)
1 1 user_id 1
2 2 user_id 3
3 3 user_id 2
4 4 user_id 2
5 5 user_id 1
6 6 user_id 2
用户
id name
1 foo
2 joo
3 peter
- 数据依赖于用户的记录,并且每个用户在数据表中都有多个关联行,我们需要使用分组方式
- 我们需要找到具有最大计数的用户。为此,使用order BYcount DESC将count列按降序排列,并使用LIMIT 0,1提取具有最大值的第一行
SELECT data.value, user.name, data.field, COUNT(*) as count
FROM data
INNER JOIN user
ON data.value = user.id
GROUP BY user.name
HAVING data.field = 'user_id'
ORDER BY count DESC
LIMIT 0,1
输出:
value | name | field | count
2 | john | user_id | 3
根据您的示例要求,您可以执行以下操作:-
SELECT data.value AS user_id,
data.field,
COUNT( * ) AS count
FROM data
INNER JOIN user
ON data.value = user.id
GROUP BY user.name
HAVING data.field = 'user_id'
ORDER BY count DESC
LIMIT 0 , 1
分组使用
select count(value) from tablename group by value;
这将根据您的表格给出计数3您的预期输出是多少?是否要筛选具有用户id的数据?@Sadikhasan预期结果是用户id 2在数据表中有三个条目。所以结果将是用户_id 2有3个计数。请提供一些安慰性的评论,像OM一样,进一步解释你的答案。并格式化您的输出,这样我们就不必了。