id    call_id    to_call_id    call_time  
-----------------------------------------
1     001        005           2008-2-6
2     001        005           2008-2-7
3     001        005           2008-2-8
4     002        005           2008-2-8
5     003        004           2008-2-9
显示结果:id    call_id    to_call_id    call_time  
-----------------------------------------
3     001        005           2008-2-8
4     002        005           2008-2-8
5     003        004           2008-2-9查询不重复记录,保留最新的一条

解决方案 »

  1.   

    select a.* from tt a inner join
    (select call_id,max(call_time) as ma from tt group by call_id) b
    on a.call_time=b.ma and a.call_id=b.call_id
      

  2.   


    select * from 表 a
    where id in (select id from 表 where call_id=a.call_id order by call_time desc limit 1);
      

  3.   

    to WWWWA 
    如果是联表查询呢?
    比如:
    id   username    to_call_id    call_time  
    ----------------------------------------- 
    1    zhan        005          2008-2-6 
    2    zhan        005          2008-2-7 
    3    zhan        005          2008-2-8 
    4    li          005          2008-2-8 
    5    wang        004          2008-2-9 
    显示结果: id   username    to_call_id    call_time  
    ----------------------------------------- 
    3    zhan        005          2008-2-8 
    4    li          005          2008-2-8 
    5    wang        004          2008-2-9call_id为外键  另表主键为id
      

  4.   

    如果是联表查询呢? 
    什么意思?
    以下代码可以解决select a.* from tt a inner join
    (select username,max(call_time) as ma from tt group by username) b
    on a.call_time=b.ma and a.username=b.username
      

  5.   

    username  在另一个表,是通过call_id联另一个表得到的
      

  6.   

    表1:
    id          int(10)  (NULL)     NO      PRI    
    call_id     int(11)  (NULL)     YES            
    to_call_id  int(11)  (NULL)     YES  
    call_time   int(11)  (NULL) 表2:
    id          int(10)      (NULL)     NO      PRI    
    username    varchar(20)  (NULL)     yes表1  call_id 与表2 id关联      
      

  7.   

    生成视图:tt
    select * from b1 inner join b2 on a.call_id=b2.id
    字段自行调整select a.* from tt a inner join
    (select username,max(call_time) as ma from tt group by username) b
    on a.call_time=b.ma and a.username=b.username
      

  8.   

    呵呵,代码就多了,将TT更换为
    select * from b1 inner join b2 on a.call_id=b2.id 
    两个地方
      

  9.   

    select a.* from tt a inner join
    (select username,max(call_time) as ma from tt group by username) b
    on a.call_time=b.ma and a.username=b.username将TT更换为
    select * from b1 inner join b2 on a.call_id=b2.id
    两个地方自己试试吧
      

  10.   

    select  c.to_call_id,max(c.call_time) as c_time,m.username
    from wd_call as c,dede_member as m where m.id=c.call_id 
    group by c.call_id,c.to_call_id
    我试了一下这个,貌似可以
      

  11.   

    为什么呢?
    标准的SQL格式是什么??
      

  12.   

    select  c.call_id,c.to_call_id,max(c.call_time) as c_time
    from wd_call as c,dede_member as m where m.id=c.call_id
    group by c.call_id,c.to_call_id
      

  13.   

    要怎么样才是标准SQL格式呢?