我正在尝试使用 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) FROM
或 AS 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/