Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 计算SELECT语句中列值的总和_Php_Mysql_Select_Pdo - Fatal编程技术网

Php 计算SELECT语句中列值的总和

Php 计算SELECT语句中列值的总和,php,mysql,select,pdo,Php,Mysql,Select,Pdo,我有一个表,我应该计算用户是否达到了3分这样的惩罚,因此如果用户达到或超过3分,他将被禁止: table_warnings - id - user_id - warning - warning_date id user_id warning warning_date 1 5478 1 2010-02-25 12:59:00 2 5478 1 2010-02-28 08:27:00 3 5

我有一个
,我应该计算用户是否达到了3分这样的惩罚,因此如果用户达到或超过3分,他将被禁止:

table_warnings
- id
- user_id
- warning
- warning_date

id    user_id     warning    warning_date
1     5478        1          2010-02-25 12:59:00
2     5478        1          2010-02-28 08:27:00
3     5478        2          2010-03-01 22:44:11
用户KM帮助我优化了一个
SELECT
的解决方案,如下所示:

SELECT COUNT(warning)
FROM table_warnings AS w
INNER JOIN table_users AS u
ON w.user_id = u.user_id
WHERE w.user_id = 5478 AND warning_date >= '2010-02-05 12:59:00'
HAVING COUNT(warning) >= 3
我能找到一种方法让
选择
来检索用户在过去30天内获得了多少罚分吗?

什么是“警告惩罚”列。我可以假设这和“警告”一样吗?如果是这样,只需将COUNT()更改为SUM()。通过一些额外的固定来消除第二个表:

SELECT user_id, SUM(warning)
FROM table_warnings 
WHERE  warning_date >= '2010-02-05 12:59:00'
GROUP BY user_id
HAVING SUM(warning) >= 3
将返回所有被禁止的用户

或者,如果您有一个用户id,并且希望知道它是否被禁止:

SELECT SUM(warning)
FROM table_warnings 
WHERE user_id = 5478 AND warning_date >= '2010-02-05 12:59:00'
并检查结果。

什么是“警告惩罚”列。我可以假设这和“警告”一样吗?如果是这样,只需将COUNT()更改为SUM()。通过一些额外的固定来消除第二个表:

SELECT user_id, SUM(warning)
FROM table_warnings 
WHERE  warning_date >= '2010-02-05 12:59:00'
GROUP BY user_id
HAVING SUM(warning) >= 3
将返回所有被禁止的用户

或者,如果您有一个用户id,并且希望知道它是否被禁止:

SELECT SUM(warning)
FROM table_warnings 
WHERE user_id = 5478 AND warning_date >= '2010-02-05 12:59:00'

并检查结果。

warn\u惩罚
字段来自何处?您不会在示例数据中显示它。它与
警告
相同吗?该
警告\u惩罚
字段来自何处?您不会在示例数据中显示它。它是否与警告相同?