如何从两个表中选择作为sql server中的一个表

时间:2014-11-07 12:42:08

标签: sql-server

我有2个表(sql server)

SELECT x, id, y, z
FROM table1

SELECT a, id, b, c
FROM table2

我希望合并结果(不是联合)

如果两个表中的id值匹配,则结果为

x, id, y, z, a, id, b, c

其中id仅在表1中,结果将是

x, id, y, z, null, id, null, null

其中id仅在表2中,结果将是

null, id, null, null, a, id, b, c

出现一次或两次的ID没有区别

我花了好几个小时才无济于事

这可能吗?

2 个答案:

答案 0 :(得分:2)

您可以使用FULL OUTER JOIN关键字;

SELECT t1.x,  t1.id,  t1.y,  t1.z, t2.a, t2.id, t2.b, t2.c
FROM table1 t1
FULL OUTER JOIN table2 t2
On t1.id = t2.id

答案 1 :(得分:0)

SELECT
    table1.x, ISNULL(table1.id,table2.id) [id], table1.y, table1.z
   ,table2.a, ISNULL(table1.id,table2.id) [id], table2.b, table2.c
FROM table1
FULL JOIN table2 ON table1.id=table2.id