用主表和子表关联要求取子表登记时间中最大一条!

test_wangzw 2009-12-29 10:31:42
如题。我主表和子表关联 我想查询出子表中登记时间最大一条 如何写!

主表:a (主键bh) 子表:b (子健 a_bh,登记时间:djsj)。
...全文
212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2009-12-29
  • 打赏
  • 举报
回复
select * from ta a left join tb b on a.bh=b.a_bh
where not exists
(select 1 from tb c where b.a_bh=c.a_bh and b.djsj<c.djsj)
ojuju10 2009-12-29
  • 打赏
  • 举报
回复


select * from ta a left join
(select a_bh,max(djsj) as djsj from tb group by a_bh ) b
on a.bh=b.a_bh
Phoenix_99 2009-12-29
  • 打赏
  • 举报
回复
select b.a_bh, max(b.djsj)
from a
left join b on a.bh = b.a_bh
group by b.a_bh
fatfoxz 2009-12-29
  • 打赏
  • 举报
回复
如果要检索更多的信息,你可以把这个作为子查询来使用。
fatfoxz 2009-12-29
  • 打赏
  • 举报
回复
select b.a_bh, max(b.djsj)
from a
left join b on a.bh = b.a_bh
group by b.a_bh
test_wangzw 2009-12-29
  • 打赏
  • 举报
回复
肯定有数据
fatfoxz 2009-12-29
  • 打赏
  • 举报
回复
如果子表里没有相应数据,主表的还检索出来吗?
ACMAIN_CHM 2009-12-29
  • 打赏
  • 举报
回复
select *
from a inner join b t on a.b=t.a_bh
where not exists (select 1
from b where a_bh=a.bh and djsj>t.djsj)
crazylaa 2009-12-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ojuju10 的回复:]
select * from ta a left join tb b on a.bh=b.a_bh
where not exists
(select 1 from tb c where b.a_bh=c.a_bh and b.djsj <c.djsj)
[/Quote]
支持,这个应该最快

3,492

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧