首页 新闻 搜索 专区 学院

left join 数据的一点问题。

0
悬赏园豆:20 [已关闭问题]

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

问题补充: 我是想做个视图把信息都关联起来
迷路中的路人甲的主页 迷路中的路人甲 | 初学一级 | 园豆:93
提问于:2009-11-30 09:19
< >
分享
其他回答(3)
0

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

邀月 | 园豆:25375 (高人七级) | 2009-11-30 10:10
0

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

你的表关系不是很清楚,不知道这样是不是符合你的要求。

清海扬波 | 园豆:777 (小虾三级) | 2009-11-30 10:13
0

select a.id,value,max(b.id) from b inner join a on a.id=b.pid

dege301 | 园豆:2825 (老鸟四级) | 2009-11-30 11:40
0

邀月  一如既往的专业啊 呵呵

chocol@te | 园豆:325 (菜鸟二级) | 2009-12-01 13:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册