+------------+-----------+----------+
| 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处理我想要的东西?
答案 0 :(得分:3)
您忘了指定您想要两列的最小值和最大值,因此它只是从每个组中选取任意值。
SELECT Series, MIN(YearsFrom) YearsFrom, MAX(YearsTo) YearsTo
FROM combine_data
WHERE Make = '$komb'
GROUP BY Series
ORDER BY YearsFrom