table(int)(varchar)(int)(data)
id    price   brandid   buydate
1     10000   4         2009-02-02
2     20000   6         2009-02-03
3     10000   4         2009-02-04写一条查询取得id是2,3的语句,当然不是依靠id=2 or id=3根据brandid与buydate来筛选
首先brandid不一样就取出,如果brandid一样,那么就取出buydate最大的那条.

解决方案 »

  1.   

    SELECT   *   FROM   table as a   WHERE buydate   =   
      (SELECT   MAX(buydate)   FROM   table as b  WHERE   a.brandid=b.brandid);
      

  2.   

    select a.*
    from table a inner join (select brandid,max(buydate) as mBuydate table group by brandid) b
    on a.brandid=b.brandid and a.buydate=b.mbuydate
      

  3.   

    不同 MySQL 版本 SQL 不同:
    5.0 以上版本就可以使用子查询来完成。
    5.0 之前版本就用 【ACMAIN_CHM】 提供的SQL 来完成。 有子查询的确方便了很多。