表A1
:
A1Id A1Type
1 ABC
2 XYZ
3 PQR
表B1
:
B1Id B1Name A1Id
1 asia 1
2 asian 1
3 aftric 2
4 angloafric 2
5 aftricegypt 2
6 usa 3
7 redindian 3
现在我需要从表B1中获取A1中每种类型的一条匹配记录。
我需要得到这些结果:
B1Id B1Name A1Id
---------------------------
1 asia 1
2 aftric 2
3 redindian 3
我需要编写一个select查询来为每条记录获取至少一个匹配记录。
有人可以建议如何编写查询吗?
答案 0 :(得分:0)
如果美国没问题,
我使用A1ID作为新的B1Id
然后在sql下面试试这个
假设表@ A1是表A1,表@ B1是表B1
with cte as
(
select
b.B1Id,b.B1Name
,a.A1ID
from @A1 a
inner join @B1 b on a.A1ID = b.A1Id
)
select
C1.A1ID as B1ID
,c1.B1Name
,C1.A1ID
from cte c1
left join cte c2 on c1.A1ID = c2.A1ID and c1.B1Id = c2.B1Id + 1
where c2.B1Id is null
B1ID B1Name A1ID
----------- -------------------- -----------
1 asia 1
2 aftric 2
3 usa 3