这样的SQL语句是不是最合适的写法?

happydaily 2012-05-24 10:19:47
表A,主表 结构 id,filesname,jiedian
表B,副表 结构 id,bianhao,bzyj,shyj,qfyj,version
表A.id=表B.bianhao,一对多关系,现在要选出表A数据和表B中version最大的数据(实际结果是各一行)
自己写了SQL如下,感觉好复杂啊,不知道有没有写得更好点?

select a.filesname,a.fname,a.jiedian,b.bzyj,b.shyj,b.qfyj from tb_A as a left join tb_B as b on a.id=b.bianhao where a.id=@id and b.id=(select id from tb_B where bianhao=@id and version=(select max(version) from tb_B where bianhao=@id))

请高手指点下,谢谢
...全文
72 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2012-05-24
  • 打赏
  • 举报
回复
select a.filesname,a.fname,a.jiedian,b.bzyj,b.shyj,b.qfyj 
from tb_A as a
left join tb_B as b on a.id=b.bianhao
and not exists(select 1 from tb_b where bianhao=b.bianhao and version>b.version)
where a.id=@id
xuam 2012-05-24
  • 打赏
  • 举报
回复
用with as

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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