PHP/MySQLi 查询,带有 distict 和其他参数


PHP/MySQLi query w/ distict and other parameters

+------------+-----------+----------+
| col1       |    col2   |    col3  |
+------------+-----------+----------+
| Steven     |    12     |    30    |
| Steven     |    10     |    37    |
| Steven     |    16     |    42    |
| Steven     |    11     |    30    |
| Neena      |    14     |    39    |
| Neena      |    11     |    35    |
| Neena      |    9      |    35    |
+------------+-----------+----------+

所以我有一个结构与此类似的表格。我想获得 col1 的不同值,但随之获得最少数量的 col2 和最大的 col3。并且还按 col2 对它们进行升序排序。因此,最终结果将如下所示:

Neena 9 39
Steven 10 42

我尝试了 DISTINCT 和 GROUP BY,但我的菜鸟 php/mysql 技能并没有给我带来我想要的结果。我通过这个确切的查询得到的最接近的结果:

SELECT `Series`,`YearsFrom`,`YearsTo` FROM `combine_data` WHERE `Make`='$komb' GROUP BY `Series` ORDER BY `YearsFrom` ASC"

但它只获取第一行的 col2 和 col3。从示例表中,我的查询将返回:

Steven 12 30
Neena 14 39

如何扩展查询以获得所需的结果?也许查询应该不同,然后用 php 处理成我想要的?

您忘记指定需要两列的最小值和最大值,因此它只是从每个组中选取任意值。

SELECT Series, MIN(YearsFrom) YearsFrom, MAX(YearsTo) YearsTo
FROM combine_data
WHERE Make = '$komb'
GROUP BY Series
ORDER BY YearsFrom