我有下表,其中存储了每位车手的得分以及他所代表的车队。
driver team points
-------------------------
Josh Mercedes 12
Aron BMW 5
Ben Mercedes 9
Jake BMW 17
Mike BMW 7
Brad Chevrolet 3
现在我想显示每个车队的分数+车队中所有车手的名字。
期望的输出:
BMW 29 Aron, Jake, Mike
Mercedes 21 Josh, Ben
Chevrolet 3 Brad
查询: 我的查询的问题是它只显示第一个司机的名字。我必须使用什么函数来包含所有驱动程序的名称?
<?php
$sql = "SELECT driver, team, points, SUM(points) AS totals FROM `example-table` GROUP BY team ORDER BY `points` DESC";
$stmt = $pdo->prepare($sql);
$stmt->execute();
if($stmt->rowCount())
{
while ($result = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo $result['team'];
echo $result['driver'];
echo $result['totals'];
?>
<br>
<?php
}// end while
}// end if
else {
echo '0 results';
}// end else
?>
最佳答案
使用Group_Concat功能
SELECT team, SUM(points) AS totals,group_concat(driver)
FROM `example-table`
GROUP BY team
ORDER BY `points` DESC
关于mysql - sql在按其他列分组后选择并显示一列的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33855563/