这是一个简单而简单的问题,但无论出于何种原因,我都无法找到解决方案。
如何加入这两个表,以便我得到像这样的NULL值?
表#T1
A
--
1
2
表#T2
B
--
3
期望的结果:
A B
----
1 NULL
2 NULL
NULL 3
编辑:
我的解决方案就是这个
SELECT #T1.A, #T2.B
FROM #t2
RIGHT JOIN #T1 ON 1 = 0
UNION
SELECT #T1.A, #T2.B
FROM #t2
LEFT JOIN #t1 ON 1 = 0
但它看起来过于复杂。还有什么更好的吗?
答案 0 :(得分:3)
使用FULL JOIN
select *
from #t1 t1
full outer join #t2 t2 on t1.a = t2.b
或使用UNION ALL
select a,Null as b
from #t1
union all
select NULL, b
from #t2
由于两个表中都没有公共记录,因此查询结果看起来都相同。当有共同记录时,结果会有所不同。使用符合您要求的那个
答案 1 :(得分:0)
这是更好/更简单的
SELECT #T1.A, #T2.B
FROM #t2
FULL OUTER JOIN #T1 ON 1 = 0