多表按照某关键字匹配联查时,A表该关键字5条记录,B表该关键字2条记录,联查后记录变成10条,怎么查能变成只有5条记录

多表按照某关键字匹配联查时,A表该关键字5条记录,B表该关键字2条记录,联查后记录变成10条,如何查能变成只有5条记录;
本帖最后由 badlinhoho 于 2015-04-27 14:44:16 编辑
如题现有A表ID,姓名,起始地点,交通费,交通工具,B表ID,住宿费,A表和B表ID关联,
比如现在某ID,在A表有5条记录,B表2条记录
使用下面代码查询
select id,姓名,起始地点,交通费,交通工具,住宿费 from A inner join B on a.id=b.id
查询结果变成10条记录,如何以A表为基础,只查出5条记录,其他位置留空

------解决思路----------------------
你贴的这个,根据不会出现RN 不是从1开始

另外,我感觉你需求中,有一点你可能没有表达出来,我调整如下,你应该还希望两个表的ID进行关联
select a.ID,a.UserName,a.Place,a.Amount,a.tools,b.hotelAmount from 
(select a.*,ROW_NUMBER()OVER(PARTITION BY ID ORDER BY GETDATE())RN from #ReturnA a)a
left join (select b.*,ROW_NUMBER()OVER(PARTITION BY ID ORDER BY GETDATE())RN from #ReturnB b) b ON a.ID=b.ID AND a.RN=b.RN