带有/ distinct和其他参数的PHP / MySQLi查询

时间:2013-12-10 19:02:21

标签: php mysql

+------------+-----------+----------+
| 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,但我的noobish php / mysql技能并没有让我得到我想要的结果。我得到的最接近的结果是:

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

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

Steven 12 30
Neena 14 39

如何扩展查询以获得我想要的结果?也许查询应该是不同的,然后用PHP处理我想要的东西?

1 个答案:

答案 0 :(得分:3)

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

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