PHP/MYSQL 子查询导致未定义索引错误

标签 php mysql subquery

我正在尝试使用 PDO 执行子查询:

$stmt = $pdo->prepare("SELECT sum(ros_ranking) FROM (SELECT ros_ranking FROM players WHERE teamid = 1 and positionid = 1 ORDER BY ros_ranking ASC LIMIT 1) AS totalrankings");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$num_rows= $stmt->rowCount();
echo "tqr= ".$row['totalrankings'];

我不断收到通知:未定义索引:totalrankings in ...

ros_ranking 在我的 Players 表中绝对是一个包含数字的字段,并且 teamid 为 1 且positionid 为 1 肯定存在。

有人看到我在这里做错了什么吗?仅供引用,如果我只将子查询作为主查询,它就可以工作。因此,SELECT sum(ros_ranking) FROMAS Totalrankings 一定有问题,但它们看起来非常简单。

最佳答案

别名使用/位置错误

您需要一个用于总排名的列名称别名(而不是您所做的表名称别名)

$stmt = $pdo->prepare("SELECT sum(t.ros_ranking) totalrankings
        FROM (SELECT ros_ranking 
                FROM players 
                WHERE teamid = 1 
                AND positionid = 1 
                ORDER BY ros_ranking ASC LIMIT 1)  t");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$num_rows= $stmt->rowCount();
echo "tqr= ".$row['totalrankings'];

关于PHP/MYSQL 子查询导致未定义索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57012823/

相关文章:

php - 如何从关联数组构建多级菜单。

JavaScript 表单验证查询

php - Eclipse 在调试 PHP 时打开带有完整路径的文件

javascript - XMLHttpRequest() POST 返回 405 错误;不允许的方法

php - 在 SQL 中通过 SELECT AS 语法使用数组和循环

mysql - 在一个查询中计算来自不同表的结果

mysql - 如何为已使用的表添加 varchar 字段?

sql - 如果没有返回行,则返回具有空值的行

MySQL。子查询

Mysql错误信息: 1242 Subquery returns more than 1 row