我有一个包含 32 行的表,成对的行包含相同的“名称值”,但具有不同的覆盆子值(分别为“一个”和“两个”。)
我想提取具有唯一名称和最低 average_distance 的每一行 - 给我 16 行,为此我正在使用此查询:
SelectFinally();
function SelectFinally (){
$con = connectToDB();
$sql = "SELECT name,MIN(average_distance),raspberry From average GROUP BY name";
$result= mysqli_query($con,$sql);
$num_rows = mysqli_num_rows($result);
echo "number of rows" .$num_rows ."<br />";
while($row=mysqli_fetch_assoc($result)) {
extract($row);
$name = $row['name'];
$distance = $row['MIN(average_distance)']; //."<br />";
$raspberry = $row['raspberry']; //."<br />";
echo "select inside selectFinally name: " .$name ." distance: " .$distance ." raspberry " .$raspberry ."<br />";
}
此查询为我提供了 average_distance 的最低值,但它弄乱了我的覆盆子值。例如blå_bil 的覆盆子值应为“二”,因此它具有最低的 average_distance - 值。 我似乎做对了。有人可以帮我解决问题吗?
最佳答案
尝试:
SELECT a.name, a.raspberry
FROM average a
INNER JOIN
(
SELECT name, MIN(average_distance) as avg_dist
FROM average
GROUP BY name
) a2 ON a.name = a2.name AND a.average_distance = a2.avg_dist
代替 SELECT name,MIN(average_distance),raspberry From average GROUP BY name
关于php - 在 PHP mysqli 中查找 MIN 值但维护行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36102398/