用户表yh
用户id
用户姓名留言表 mj
字段
     作业id(主键)
     用户编号
     留言日期
     留言用户(id)
     留言内容
     留言状态
     留言类型
  现在要将针对某个用户(根据留言用户区分)日期最大的一条留言的所有信息查出来,而且还要将该用户的姓名查出

解决方案 »

  1.   

    select yh.用户姓名,v.* from yh,
       (select * from mj where 留言日期=(select max(留言日期 ) from mj where 用户编号=:?) v where yh.用户id=v.用户编号;也可以用分析函数rank。
      

  2.   


    select a.用户姓名,b.*
    from   yh a,mj b,
    (
    select id,max(留言日期) as MaxDate
    from   mj
    group  by id
    ) c
    where a.id=c.id and b.留言日期=c.MaxDate
      

  3.   

    select * from mj where 留言日期=(select max(留言日期 ) from mj where 用户编号=:?) and 用户编号=:?中间漏了个条件,可能有多个用户在该日期回复。
      

  4.   

    select 留言用户(id),
    留言内容 ,留言状态, 留言类型 ,
    ,
    (select 用户姓名 from 用户表yh yh where yh.留言用户(id)= a.留言用户(id)) 用户姓名from (select 留言用户(id),留言内容 ,留言状态, 留言类型 
    row_number() over(partition by 留言用户(id) order by 留言日期  desc) rn
    from 留言表   mj ) a 
    where rn = 1
      

  5.   


    select a.*, b.*
      from 用户表yh a,
           (select *
              from (select *,
                           row_number() over(partition by 用户id order by 留言日期) rn
                      from mj)
             where rn = 1) b
     where a.用户id = b.用户id
      

  6.   

    select 用户姓名,作业id,用户编号,留言用户(id),留言内容,留言状态,留言类型 from yh,mj where 留言用户(id) = 用户id
        and 留言日期 = (select max(留言日期) from mj where 留言用户(id) = 用户id)
      

  7.   

    1 120000112201002030003 120000112200911117727 2010/2/3 super <CLOB> 4 1 2010/2/3 11:37:40 XXXXXXXX U 35922520
    2 120000112201002030007 120000112200911117727 2010/2/3 <CLOB> 4 1 2010/2/3 16:55:30 XXXXXXXX U 35923808
    3 120000112201002030009 120000112200911117727 2010/2/3 <CLOB> 4 1 2010/2/3 16:56:15 XXXXXXXX U 35921792
    4 120000112201002030010 120000112200911117727 2010/2/3 <CLOB> 4 1 2010/2/3 17:00:49 XXXXXXXX U 35924032
    5 120000112201002030001 120000112200911117727 2010/2/3 super <CLOB> 4 1 2010/2/3 9:58:28 XXXXXXXX U 35926720
    6 120000112201002030013 120000112200911117727 2010/2/3 super <CLOB> 4 0 2010/2/3 17:15:31 XXXXXXXX U 35922632
    7 120000112201002030002 120000112200911117727 2010/2/3 super <CLOB> 4 1 2010/2/3 11:21:08 XXXXXXXX U 35926664
    8 120000112201002030006 120000112200911117727 2010/2/3 super <CLOB> 4 1 2010/2/3 13:06:54 XXXXXXXX U 35918544
    9 120000112201002030008 120000112200911117727 2010/2/3 <CLOB> 4 1 2010/2/3 16:55:45 XXXXXXXX U 35923584
    10 120000112201002030011 120000112200911117727 2010/2/3 <CLOB> 4 1 2010/2/3 17:03:29 XXXXXXXX U 35921344
    11 120000112201002030012 120000112200911117727 2010/2/3 <CLOB> 4 1 2010/2/3 17:06:49 XXXXXXXX U 35925488
      

  8.   


    这是我查出来的结果我只要最大的一条,我的语句是这样的。
    select * from mjcblyb cb where cb.lyrq = (select max(m.lyrq) from mjcblyb m where m.rybh='120000112200911117727') and cb.rybh='120000112200911117727'
      

  9.   

    可以一个用户它可能一天中有多条留言的,没有限制留言的次数。我只要一条啊。就是当天的一条,我加rownum试试。