日期:2014-05-17  浏览次数:21161 次

oracle 去ID最大的那条记录
select  m.name,m.merchant_id,c.*
   from couponinfo c,merchant m, coupon_merchant cm 
   where c.coupon_id=cm.product_id
   and cm.merchant_id=m.merchant_id
   and c.coupon_name = 'text'

这样查出来是 多条数据! 如何取出 m.merchant_id 最大的那条记录
------最佳解决方案--------------------

  select rownum,t.* from
  (select m.name,m.merchant_id,c.*
  from couponinfo c,merchant m, coupon_merchant cm 
  where c.coupon_id=cm.product_id
  and cm.merchant_id=m.merchant_id
  and c.coupon_name = 'text'
  order by m.merchant_id desc) t
  where rownum=1;


没数据就没试,不知道行不行,你试试
------其他解决方案--------------------
select ROWNUM,m.name,m.merchant_id,c.*
  from couponinfo c,merchant m, coupon_merchant cm  
  where c.coupon_id=cm.product_id
  and cm.merchant_id=m.merchant_id
  and c.coupon_name = 'text' AND ROWNUM = 1
  ORDER BY m.merchant_id DESC
------其他解决方案--------------------
with t as (
select m.name,m.merchant_id,c.*
  from couponinfo c,merchant m, coupon_merchant cm  
  where c.coupon_id=cm.product_id
  and cm.merchant_id=m.merchant_id
  and c.coupon_name = 'text')
select * from t where merchant_id=(select max(merchant_id) from t);
 

------其他解决方案--------------------
不对啊 ! 执行报错 ora-01722
------其他解决方案--------------------
楼上的可以! 3 楼的 随即取了一条 但不是ID最大的