简书链接:sqlserver关联查询时让b表多条记录只处理一条记录CROSSAPPLY
文章字数:77,阅读全文大约需要1分钟

a表 一条记录 b表多条记录,但是只需要取匹配的一条就行。
方法1 :
子查询 然后select top 1,但是此方法子查询内部字段无法读取外部的,就稍微不优雅,内外共用只能拼接字符串

方法2:
CROSS APPLY

1
2
3
4
5
6
7
8
9
select * from  X record

CROSS APPLY (
select top 1 * from BB B where B.sn=record.X
) b

CROSS APPLY (select distinct mypart.X from C myX left join XXX BX on mybom.x= mypart.x_id where myX.w = record.w)
c
left join CCC e on c.XXX=e.XXXX