大侠,这个问题我弄了很久都没明白,求您帮帮我吧,大家好像都回家了。
这帖子我都发了好久啦,都没人帮我,好伤心啊!
http://topic.csdn.net/u/20080928/20/0fd8352f-3ebf-47c3-8859-4555db7934bb.html
我自己再尝试了另一种方法,还是不行:
selct tableA*,tableB.txt from tableA left join tableB on tableA.tid = tableB.tid where (select tid,max(time) from tableB group by tid order by max(time))也就是先筛选了tableB,使之得出不重复的匹配项,然后再用tableA 与 tableB联合,思路应该没错吧,但老是报语法错误。
求解。大家都忙着回家过十一了,我还要上班,祝大家十一快乐!同样祝跟我一样要值班的朋友十一快乐!

解决方案 »

  1.   

    是这样的吧。select   a.*,
             ifnull(b.time,'')  as time,
             ifnull(b.txt,'')   as txt
    from     tableA as a
             left join tableB as b
               on a.tid = b.tid
    group by a.tid
    order by a.tid
    query result
    tid username title time txt
    1  lily  我公司将进行xx培训  0809  大家快来。
    2  angus  关于秋游的通知  0810  我是新来的,大家好
    3  boss  这个月不发奖金      
    4  vivi  新产品上市  0811  价格太贵啦
      

  2.   

    yueliangdao0608大侠,谢谢您的答案,已经在另外一个帖子给您加分了。这里就不加了。结贴去。谢谢!
      

  3.   

    补充:这里只能选择“无满意答案”的选项结贴,但事实上是已经有满意答案的。就是yueliangdao0608大侠给出的答案
      

  4.   

    再细化:
    表B按tid 分组,取time最大(小)再连接即可
    select * from ba d left join (
    select a.* from tid a inner join
    (select tid,min(time) as ma from b group by tid ) c
    on a.tid=b.tid and a.time=b.ma) e on d.tid=e.tid