表a (id ,name),values(1,zhou)
表b(name,sex),values(zhou,nan),values(zhou,gay)
我想得到这样的结果 就是表a的name = 表b的name,然后查出此时的表b的sex,但是这样写出的结果有可能不止一个,我只想要一个,不能用top1因为表a里的数据不止一行。
下面是我这样的想法,可是会报错,请教,急
select * from a inner join (select top 1 * from b)as b on a.name = b.name
表b(name,sex),values(zhou,nan),values(zhou,gay)
我想得到这样的结果 就是表a的name = 表b的name,然后查出此时的表b的sex,但是这样写出的结果有可能不止一个,我只想要一个,不能用top1因为表a里的数据不止一行。
下面是我这样的想法,可是会报错,请教,急
select * from a inner join (select top 1 * from b)as b on a.name = b.name
表设计问题表b的name 最好对应的是表a的id,就不会有问题了..
表b为 zhou,gay;zhou,nan;sun,nan;sun,nv
直接inner join
查处这样的结果 1,zhou,nan
1,zhou,gay
2,sun,nan
2,sun,nv
时 我只想要
1,zhou,nan
2,sun,nv
select a.name,b.sex
,row_number() over(partition by a.name order by a.name) as [order]
from a,b where a.name=b.name
) T
where [order]<2
试一下!