两个表JOIN连接

新新小白白又白 2019-09-04 08:25:37
表1:

表2:


SELECT a.num,b.text
FROM 表1 a
LEFT JOIN 表2 b ON a.id = b.id

我只需要取表2的Version为最大值的数据与表1相连接,需要怎么修改?

SELECT a.num,bb.text
FROM t1 a
outer apply (select top 1 * from t2 b where a.id = b.id order by [version] desc ) as bb

使用outer apply可以解决,请问可以使用left join解决吗?
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2019-09-04
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#T1') is null
drop table #T1
Go
Create table #T1([id] int,[num] int)
Insert #T1
select 1,125125 union all
select 2,12512535 union all
select 3,12616 union all
select 4,125
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([id] int,[version] int,[text] int)
Insert #T2
select 1,0,215 union all
select 1,1,125 union all
select 2,0,125126 union all
select 3,0,1255
Go
--测试数据结束
SELECT a.num,b.text
FROM #T1 a
LEFT JOIN (SELECT *,ROW_NUMBER()OVER(PARTITION BY id ORDER BY version DESC) rn FROM #T2) b ON a.id = b.id AND rn=1


sdk25 2019-09-04
  • 打赏
  • 举报
回复
如果是以表2为主表作为查询,这样试试 SELECT a.num,b.text FROM 表2 a LEFT JOIN 表1 b ON a.id = b.id WHERE a.Version = (select max(Version) from 表2)
sdk25 2019-09-04
  • 打赏
  • 举报
回复
表2,在查询中是作为主表查询的吗?

27,580

社区成员

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

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