我的数据库(ACCESS)有几个表中(结构相同),我想选择出每个表中最新加入的一条记录(add_date字段可以判断)我要下面的方法:
select_newinfo = "select * from (select top 1 title,infoid from info_gonggao union all select top 1 title,infoid from info_shenghuo union all select top 1 title,infoid from info_canyin )"但选择出的记录却不是最新的。
我想应该是缺乏按时间排序,但是这样:
select_newinfo = "select * from (select top 1 title,infoid from info_gonggao ORDER BY add_date DESC union all select top 1 title,infoid from info_shenghuo ORDER BY add_date DESC union all select top 1 title,infoid from info_canyin ORDER BY add_date DESC )"虽然加了 ORDER BY add_date DESC,但却报错!!!
请问这条语句应该怎么写才正确???

解决方案 »

  1.   

    select top 1 * from 表名 order by id desc id 设为自动加1这样就OK了
      

  2.   


    使用union时,order by 语句只能在最后一个子句末尾出现
      

  3.   

    我怎么觉得你搞得也太麻烦了吧
    top 1 order by id desc  不就可以了
      

  4.   

    zy44995(zy) ( ) 信誉:91  2006-04-14 11:01:00  得分: 0  
     
     
       那请问选择数据库中的"最后一条记录",该怎么写?用什么关键字是最后一条记录?谢谢
      
     
    -------------------------------------
    前面我已经写好了
      

  5.   

    SELECT * FROM Table WHERE ID = ( SELECT MAX(ID) FROM Table )
    最大的记录。
      

  6.   

    我是一次从数据库中的多个表中选取每一表的最新一条信息。“select top 1 * from 表名 order by id desc id 设为自动加1这样就OK了”不可行,我的每条信息都有“infoid"但不一定最新信息的ID就是最大的
    另外“menuvb(戏子……年少,轻狂,不张扬)”朋友的方法也没实现(报错):
    select_newinfo = "select * from (select top 1 title,infoid from info_gonggao union all select top 1 title,infoid from info_shenghuo union all select top 1 title,infoid from info_canyin  ORDER BY add_date DESC)"
      

  7.   

    每个表中是否是最新加入记录只能从时间上判断(add_date字段),所以“SELECT * FROM Table WHERE ID = ( SELECT MAX(ID) FROM Table )”也行不通
      

  8.   

    select top 1 title,infoid from info_gonggao ORDER BY add_date DESC  union all
    select top 1 title,infoid from info_shenghuo ORDER BY add_date DESC union all
    select top 1 title,infoid from info_canyin ORDER BY add_date DESC
    ----------------------------
    不需要 Select* from 直接 union all
    如果要用 就把 SELECT * FROM 改成 SELECT  title,infoid FROM 
      

  9.   

    SELECT TOP 1 * FROM Table WHERE add_date  = ( SELECT MAX(add_date ) FROM Table )
    稍微改一下不就行了