SQL联接-显示部分结果包含空列的数据

SQL联接-显示部分结果包含空列的数据,sql,Sql,我正在mssql中编写以下存储过程 foo和bar列在表1中,id列在表2中 select foo, bar, id from table1 join table2 on table2.foo = foo.foo 我的问题是,如果只有foo和bar的数据,我希望它返回 a、 b,空 然而,如果id不存在,但foo和bar存在,它将根本不返回行 有没有一种优雅的方法可以解决这个问题?这应该可以解决您的问题: SELECT foo, bar, id FROM table1 OUTER JOIN t

我正在mssql中编写以下存储过程

foo和bar列在表1中,id列在表2中

select foo, bar, id from table1
join table2 on table2.foo = foo.foo
我的问题是,如果只有foo和bar的数据,我希望它返回

a、 b,空

然而,如果id不存在,但foo和bar存在,它将根本不返回行


有没有一种优雅的方法可以解决这个问题?

这应该可以解决您的问题:

SELECT foo, bar, id FROM table1
OUTER JOIN table2 on table2.foo = foo.foo

我想您正在寻找一个
完全外部联接
查询

SELECT a.foo, a.bar, a.id 
FROM table1 a
FULL OUTER JOIN table2 b 
ON a.foo = b.foo

你可以检查一下这个

啊,这就是原因,谢谢,它起作用了!