日期:2014-05-18  浏览次数:20473 次

带关系的两个表横向拼凑怎么做啊
表A  
select * from a 
得到下图


表B
select * from b
得到下图


如果select * from a left join b on a.uid = b.uid 



我想要的结果如下


用join的话 ,有些行并不需要,我只是想拼起来就行,不用那个笛卡尔积,这个问题怎么解决啊,在线等,。,。。。

------解决方案--------------------
SQL code

select * from(
select row_number()over(partition by UID order by getdate()) as row,
* from a)t
full join 
(select row_number()over(partition by UID order by getdate()) as row,
* from b)m
on a.row=b.row

------解决方案--------------------
探讨

引用:
引用:
首先谢谢你,那个name那一列没有用,全当没有那一列,如果没有name那一列怎么做

从楼主给的例子看,结果中a1-b1,a2-b2,a3-b3,a4-b4,a5-b5,所以无法不用name这一列.
不用的话就是一对多的关系,结果自然是笛卡尔积.

能不能不用笛卡尔许积,只是把两个表按UID排序 然后拼凑啊。SQL能不能实现这种功……