多表合成问题
有两个表结构如下
表1:
用户Id 额外所得1
1 200.00
3 400.00
表2:
用户Id 额外所得2
1 10.00
2 11.20
要求合成一个表结构如下:
用户Id 额外所得1 额外所得2
1 200 10.00
2 0.00 11.20
3 400 0.00
就是要求把表1和表2出现过的记录按用户Id合并起来,please help.....
------最佳解决方案--------------------select isnull(a.用户id,b.用户id) as 用户id,isnull(额外所得1,0) as 额外所得1,isnull(额外所得2,0) as 额外所得2
from TB1 as a full join TB2 as b on a.用户id=b.用户id
------其他解决方案--------------------SELECT 用户Id ,SUM(额外所得1), SUM(额外所得2)
FROM (
SELECT 用户Id ,额外所得1,0 额外所得2
FROM 表1
UNION ALL
SELECT 用户Id ,0 额外所得1, 额外所得2
FROM 表2
) a
GROUP BY 用户Id
------其他解决方案--------------------
SELECT 用户ID,额为金额1,额外金额2 FROM 表1 LEFT JOIN 表2 ON 表1.ID=表2.ID
------其他解决方案--------------------谢谢各位帮忙,雪狼和发粪涂墙的方法都很好,结果也正确,灬尒蕏づ的方法会丢失掉表2的记录
------其他解决方案--------------------雪狼的在大数据量的时候会很慢,我的那个客户忽略主键问题。还是建议用我的
------其他解决方案--------------------null