Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mysql获取数据计数_Php_Mysql - Fatal编程技术网

Php 如何使用mysql获取数据计数

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

我有两个表数据和用户。我需要得到数据计数->值,并只显示最大计数和用户->名称

例如,用户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      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一样,进一步解释你的答案。并格式化您的输出,这样我们就不必了。