MySQL表中的最新记录

MySQL表中的最新记录,mysql,Mysql,如何在此表中选择最新记录=MAXorder\u history\u id每个订单\u id一[最新]行: +----------------+--------+-------+----------+ |order_history_id|order_id|trackc |date_added| +----------------+--------+-------+----------+ | 4400 | 1000 | text | 2014-9-24| | 44

如何在此表中选择最新记录=MAXorder\u history\u id每个订单\u id一[最新]行:

+----------------+--------+-------+----------+
|order_history_id|order_id|trackc |date_added|
+----------------+--------+-------+----------+
|      4400      |   1000 | text  | 2014-9-24|
|      4401      |   1001 | text2 | 2014-9-26|
|      4410      |   1000 | text3 | 2014-9-29|
|      4411      |   1003 | text4 | 2014-9-20|
+----------------+--------+-------+----------+
我目前的查询是:

SELECT * FROM order_history WHERE  trackc <>  '' GROUP BY order_id

子查询提取每个订单id的最大值。然后将找到的值与订单历史记录合并,并提取每个字段。

谢谢,是否有任何原因导致此查询无法处理以下数据?表中是否存在列trackc?如果是,请尝试将ifnull设置为空。顺便说一下,我编辑了我的答案。由于某些原因,我得到了错误的数据:order\u history\u id=4885应该是ZB。。。。。。而不是WE123…嗯,我现在得到的是“order子句”中的未知列“order\U history.trackcode”->当然该列存在。@Adrian既然我没有在我的答案中输入,你怎么能得到错误未知列order\U history.trackcode?
select t1.* from order_history t1
inner join(
    select order_id,max(order_history_id) as order_history_id
    from order_history
    where ifnull(trackcode,'') <> ''
    group by order_id
) as t2 on t1.order_history_id = t2.order_history_id
 select or.order_history_id,or.order_id,or.trackc,or.date_added From order_history or
 order by or.order_id Desc
 limit 1;
SELECT * from order_history as oh inner join (
    SELECT MAX(order_history_id) AS max_id, order_id
    FROM order_history
    GROUP BY order_id
) as t ON t.max_id = oh.order_history_id
WHERE oh.trackc <>  ''