有两个表
表a
a.id a.name a.px
1 海淀区 1
2 朝阳区 2
3 西城区 3
4 东城区 4
表b
b.id b.name b.re_aid b.px
1 社区a 1 1
2 社区b 2 1
3 社区c 1 2
4 社区d 3 1
a.id 与b.re_aid关联
现在我想取出 表a中的数据 并将表a中每条数据包含的B表数据前八条提取出来
也就是取出每个城区的前8个社区,一并显示出来
该怎么写呢
表a
a.id a.name a.px
1 海淀区 1
2 朝阳区 2
3 西城区 3
4 东城区 4
表b
b.id b.name b.re_aid b.px
1 社区a 1 1
2 社区b 2 1
3 社区c 1 2
4 社区d 3 1
a.id 与b.re_aid关联
现在我想取出 表a中的数据 并将表a中每条数据包含的B表数据前八条提取出来
也就是取出每个城区的前8个社区,一并显示出来
该怎么写呢
select top 8 b.name from 表b b,表a a where b.px=a.px and b.px=i
select top 8 b.name from 表b b,表a a where b.px=a.px and b.px in(1,2,3,...)
select a.id,a.name,b.name,row_number()over(partition by a.id,order by b.name) rn
from a left join b on a.id=b.re_aid
)
where rn<=8