获取mysql行的最新日期

获取mysql行的最新日期,mysql,join,Mysql,Join,对不起,我的描述不好,但我正在努力为每个最后一次吃水果的人获取最新的日期。我不认为我把它分组正确,或者我完全错过了一些东西。有人能帮我吗?提前谢谢 T1 +--------+--------+--------+ | person | fruit | date | +--------+--------+--------+ | Bob | apple | 1-1-13 | | Bob | apple | 1-4-13 | | Bob | apple | 1-6-13 |

对不起,我的描述不好,但我正在努力为每个最后一次吃水果的人获取最新的日期。我不认为我把它分组正确,或者我完全错过了一些东西。有人能帮我吗?提前谢谢

T1
+--------+--------+--------+
| person | fruit  |  date  |
+--------+--------+--------+
|  Bob   | apple  | 1-1-13 |
|  Bob   | apple  | 1-4-13 |
|  Bob   | apple  | 1-6-13 |
|  Bob   | orange | 1-2-13 |
|  John  | apple  | 1-3-13 |
|  John  | orange | 1-2-13 |
|  John  | orange | 1-4-13 |
|  John  | orange | 1-9-13 |
+--------+--------+--------+

Results I'm looking for
+--------+--------+--------+
| person | fruit  |  date  |
+--------+--------+--------+
|  Bob   | apple  | 1-6-13 |
|  Bob   | orange | 1-2-13 |
|  John  | apple  | 1-3-13 |
|  John  | orange | 1-9-13 |
+--------+--------+--------+
我从类似的文章中尝试了什么

SELECT * FROM T1 
  JOIN (
    SELECT person,max(date) AS latest 
      FROM T1 GROUP BY person
    ) T2
  ON T1.person = T2.person AND T1.date = T2.latest

Resulting in
+--------+--------+--------+
| person | fruit  |  date  |
+--------+--------+--------+
|  Bob   | apple  | 1-6-13 |
|  John  | orange | 1-9-13 |
+--------+--------+--------+

我怎样才能让它也分开水果栏呢?

这里不需要加入
JOIN
。使用
分组依据进行简单聚合

SELECT person, fruit, DATE_FORMAT(MAX(date), '%c-%e-%y') AS max_date
FROM T1
GROUP BY person, fruit
结果

| PERSON | FRUIT | MAX_DATE | ------------------------------ | Bob | apple | 1-6-13 | | Bob | orange | 1-2-13 | | John | apple | 1-3-13 | | John | orange | 1-9-13 | |人|水果|最大日期| ------------------------------ |鲍勃|苹果| 1-6-13| |鲍勃|橙色| 1-2-13| |约翰|苹果| 1-3-13| |约翰·奥兰治1-9-13|
哦,你可以用两列来分组,这样事情就简单多了。感谢you@user1583432对如果正在使用聚合并选择其他列,则这些列必须包含在“分组依据”中。