欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

问大伙儿一个sql,两个表联查,一对多,多的取最新记录

更新时间: 2014-01-05 02:12:18 责任编辑: Author_N1

 

问大家一个SQL,两个表联查,一对多,多的取最新记录

--参考方法--
SELECT T1.*, T2.COUNT
  FROM T_PRODUCT T1,
       (SELECT T1.PID, T1.COUNT
          FROM T_RECORD T1,
               (SELECT MAX(T.ID) ID, T.PID FROM T_RECORD T GROUP BY T.PID) T2
         WHERE T1.ID = T2.ID
           AND T1.PID = T2.PID) T2
 WHERE T1.ID = T2.PID(+)

--参考方法--
with t_product as
 (
  
  select 1 id, 'p_name_1' name
    from dual
  union
  select 2 id, 'p_name_2' name
    from dual
  union
  select 3 id, 'p_name_3' name from dual),
t_record as
 (select 1 id, 1 pid, 5 count
    from dual
  union
  select 2 id, 1 pid, 6 count
    from dual
  union
  select 3 id, 2 pid, 7 count from dual)

select a.id, a.name, b.count
  from t_product a,
       (select pid, max(count) KEEP(DENSE_RANK FIRST ORDER BY id desc) count
          from t_record
         group by pid) b
 where a.id = b.pid(+)
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6935/
本文WWW.DOC100.NET DOC100.NET版权所有。