Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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 计算行数和值匹配数_Php_Mysql - Fatal编程技术网

Php 计算行数和值匹配数

Php 计算行数和值匹配数,php,mysql,Php,Mysql,我们加入了两张桌子:allMatches和playerUsers。玩家用户有一个用户名,该用户名与给定赛季allMatches表中的玩家1或玩家2(可能与赢家)匹配 我想计算玩过的游戏数(他们参加的任何比赛)和赢过的游戏数(playerUsers上的用户名与allMatches上的winner匹配)。上面的SQL语句以相同的数字返回wins和games。有没有一种方法可以在同一SQL语句中计算赢数和游戏数?使用SUM而不是count来计算赢数: SELECT COUNT(m.winner = p

我们加入了两张桌子:allMatches和playerUsers。玩家用户有一个用户名,该用户名与给定赛季allMatches表中的玩家1或玩家2(可能与赢家)匹配


我想计算玩过的游戏数(他们参加的任何比赛)和赢过的游戏数(playerUsers上的用户名与allMatches上的winner匹配)。上面的SQL语句以相同的数字返回wins和games。有没有一种方法可以在同一SQL语句中计算赢数和游戏数?

使用
SUM
而不是
count
来计算赢数:

SELECT COUNT(m.winner = p.userName) AS wins, YEAR(m.datePlayed) AS year, DATE_FORMAT(m.datePlayed, '%M') AS month, COUNT(*) as games FROM allMatches AS m LEFT JOIN playerUsers AS p ON m.season = p.season AND (m.player1 = p.userName OR m.player2 = p.userName) WHERE p.realName = '$realName' AND m.winner != '' AND m.canceled != '1' GROUP BY YEAR(m.datePlayed), MONTH(m.datePlayed)";
它之所以有效,是因为布尔表达式的计算结果为0和1,因此
SUM
会给出表达式为真的行总数

SELECT SUM(m.winner = p.userName) AS wins, ...