a表关联b表。但是只想读取b表中最新的一条数据进行关联,不知道怎么才能操作呢?
结构大概如下。 只想读取b表中最新的数据进行关联,可以根据ID排列找最新数据
a
id name
1 aaa
2 bbb
b
id pid value
1 1 aaaaaaaa
2 1 bbbbbbbbb
3 2 aaa
a 的id对应b的pid?
Create table ta
(id int,name nvarchar(20))
go
insert into ta
select 1, 'aaa'
union all
select 2, 'bbb'
go
Create table tb
(id int,pid int,value nvarchar(20))
go
insert into tb
select 1, 1, 'aaaaaaaa'
union all
select 2, 1, 'bbbbbbbbb'
union all
select 3, 2, 'aaa'
go
select ta.[id],ta.[name],(select max(id) from tb where tb.pid=ta.id group by PId ) as maxID from ta
执行结果:
id name maxID
1 aaa 2
2 bbb 3
declare @a table(id int,name varchar(10))
insert @a
select 1, 'aaa'
union all
select 2, 'bbb'
declare @b table(id int,pid int,value varchar(10))
insert @b
select 1, 1, 'aaaaaaaa'
union all
select 2, 1, 'bbbbbbbbb'
union all
select 3, 2, 'aaa'
select * from @a a left join
(select *
from @b a
where not exists(select 1 from @b where pid=a.pid and id>a.id)) b on a.id=b.pid
你的表关系不是很清楚,不知道这样是不是符合你的要求。
select a.id,value,max(b.id) from b inner join a on a.id=b.pid
邀月 一如既往的专业啊 呵呵